75class pcps_opencl_acquisition_cc :
public acquisition_impl_interface
90 d_gnss_synchro = p_gnss_synchro;
96 inline uint32_t
mag()
const override
136 d_channel_fsm = channel_fsm;
139 inline bool opencl_ready()
const
149 void acquisition_core_volk();
151 void acquisition_core_opencl();
157 gr_vector_const_void_star& input_items,
158 gr_vector_void_star& output_items)
override;
161 friend pcps_opencl_acquisition_cc_sptr
162 pcps_make_opencl_acquisition_cc(
const Acq_Conf& conf, uint32_t max_dwells);
164 explicit pcps_opencl_acquisition_cc(
const Acq_Conf& conf, uint32_t max_dwells);
166 void calculate_magnitudes(gr_complex* fft_begin,
int doppler_shift,
int doppler_offset);
168 int init_opencl_environment(
const std::string& kernel_filename);
170 cl::Platform d_cl_platform;
171 cl::Device d_cl_device;
172 cl::Context d_cl_context;
173 cl::Program d_cl_program;
174 cl::Buffer* d_cl_buffer_in;
175 cl::Buffer* d_cl_buffer_fft_codes;
176 cl::Buffer* d_cl_buffer_1;
177 cl::Buffer* d_cl_buffer_2;
178 cl::Buffer* d_cl_buffer_magnitude;
179 cl::Buffer** d_cl_buffer_grid_doppler_wipeoffs;
180 cl::CommandQueue* d_cl_queue;
181 clFFT_Plan d_cl_fft_plan;
182 cl_int d_cl_fft_batch_size;
184 std::string d_satellite_str;
187 std::ofstream d_dump_file;
191 uint64_t d_sample_counter;
193 int* d_max_doppler_indexs;
197 float d_test_statistics;
202 uint32_t d_max_dwells;
203 uint32_t d_well_count;
204 const uint32_t d_fft_size;
205 uint32_t d_fft_size_pow2;
206 uint32_t d_num_doppler_bins;
207 uint32_t d_code_phase;
209 uint32_t d_in_dwell_count;
214 std::weak_ptr<ChannelFsm> d_channel_fsm;
216 std::unique_ptr<gnss_fft_complex_fwd> d_fft_if;
217 std::unique_ptr<gnss_fft_complex_rev> d_ifft;
219 std::vector<std::vector<gr_complex>> d_grid_doppler_wipeoffs;
220 std::vector<std::vector<gr_complex>> d_in_buffer;
221 std::vector<gr_complex> d_fft_codes;
222 std::vector<gr_complex> d_zero_vector;
223 std::vector<uint64_t> d_sample_counter_buffer;
224 std::vector<float> d_magnitude;
int general_work(int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override
Parallel Code Phase Search Acquisition signal processing.