18#ifndef GNSS_SDR_BASE_DLL_PLL_TRACKING_FPGA_H
19#define GNSS_SDR_BASE_DLL_PLL_TRACKING_FPGA_H
44 const std::string&
role,
45 unsigned int in_streams,
46 unsigned int out_streams);
57 std::string
role()
override {
return role_; }
62 size_t item_size()
override {
return sizeof(int16_t); }
67 void connect(gr::top_block_sptr top_block)
override;
112 static const int32_t LOCAL_CODE_FPGA_ENABLE_WRITE_MEMORY = 0x0C000000;
113 static const int32_t LOCAL_CODE_FPGA_CORRELATOR_SELECT_COUNT = 0x20000000;
116 inline const Dll_Pll_Conf_Fpga& config_params_fpga()
const {
return trk_params_; }
119 dll_pll_veml_tracking_fpga_sptr tracking_fpga_sc_sptr_;
123 inline static const std::map<std::string, std::string> signal_to_device_ = {
124 {
"1C",
"multicorrelator_resampler_S00_AXI"},
125 {
"2S",
"multicorrelator_resampler_S00_AXI"},
126 {
"L5",
"multicorrelator_resampler_3_1_AXI"},
127 {
"1B",
"multicorrelator_resampler_5_1_AXI"},
128 {
"5X",
"multicorrelator_resampler_3_1_AXI"},
131 inline static const std::map<std::string, std::string> signal_to_alternative_device_ = {
132 {
"1C",
"multicorrelator_resampler_5_1_AXI"}};
135 inline static std::map<std::string, int> channel_counts_;
137 void set_signal_channel_base_index_locked_();
138 uint32_t get_num_alternative_devices_locked_()
const;
140 Dll_Pll_Conf_Fpga trk_params_;
141 const std::string role_;
143 std::string device_name_;
145 inline static std::mutex channel_counts_mtx_;
148 uint32_t signal_base_channel_index_;
void disconnect(gr::top_block_sptr top_block) override
Disconnect the Tracking block adapter.
size_t item_size() override
Get item_size from the Tracking block adapter.
BaseDllPllTrackingFpga(const ConfigurationInterface *configuration, const std::string &role, unsigned int in_streams, unsigned int out_streams)
Base constructor of FPGA-based Tracking block adapters.
gr::basic_block_sptr get_left_block() override
Get left block from the Tracking block adapter.
std::string role() override
Get role from the Tracking block adapter.
gr::basic_block_sptr get_right_block() override
Get right block from the Tracking block adapter.
void stop_tracking() override
Stop the tracking process in the FPGA.
void configure_fpga_tracking_channel_mapping(std::string signal)
configure FPGA tracking channel mapping
void set_channel(unsigned int channel) override
Set tracking channel unique ID.
void set_gnss_synchro(Gnss_Synchro *p_gnss_synchro) override
Set acquisition/tracking common Gnss_Synchro object pointer to efficiently exchange synchronization d...
void connect(gr::top_block_sptr top_block) override
Connect the Tracking block adapter.
void start_tracking() override
Start the tracking process in the FPGA.
virtual ~BaseDllPllTrackingFpga()=default
Base destructor of FPGA-based Tracking block adapters.
This abstract class represents an interface to configuration parameters.
This is the class that contains the information that is shared by the processing blocks.
This abstract class represents an interface to a tracking block.
Class that contains all the configuration parameters for generic tracking block based on a DLL and a ...
Implementation of a code DLL + carrier PLL tracking block using an FPGA.
This class represents an interface to a tracking block.