GNU Radio's LTE Package
pss_symbol_selector_cvc_impl.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2013 Communications Engineering Lab (CEL) / Karlsruhe Institute of Technology (KIT)
4 *
5 * This is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3, or (at your option)
8 * any later version.
9 *
10 * This software is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this software; see the file COPYING. If not, write to
17 * the Free Software Foundation, Inc., 51 Franklin Street,
18 * Boston, MA 02110-1301, USA.
19 */
20
21#ifndef INCLUDED_LTE_PSS_SYMBOL_SELECTOR_CVC_IMPL_H
22#define INCLUDED_LTE_PSS_SYMBOL_SELECTOR_CVC_IMPL_H
23
25
26namespace gr {
27 namespace lte {
28
30 {
31 private:
32 int d_fftl;
33 int d_cpl;
34 int d_cpl0;
35 int d_slotl;
36 int d_syml;
37 int d_syml0;
38
39 long d_offset;
40 long d_sym_pos;
41 long d_ass_half_frame_start;
42 int d_off_sym_count;
43 int d_work_call;
44 pmt::pmt_t d_key;
45 pmt::pmt_t d_sym_key;
46 pmt::pmt_t d_tag_id;
47 bool d_is_locked;
48
49 void produce_output(gr_complex *&out, const gr_complex *in, long abs_pos, int &nout);
50 void handle_msg_lock(pmt::pmt_t msg);
51 void handle_msg_half_frame_start(pmt::pmt_t msg);
52
53 public:
54 pss_symbol_selector_cvc_impl(int fftl, std::string& name);
56
57 // Where all the action really happens
58 void forecast (int noutput_items, gr_vector_int &ninput_items_required);
59
60 int general_work(int noutput_items,
61 gr_vector_int &ninput_items,
62 gr_vector_const_void_star &input_items,
63 gr_vector_void_star &output_items);
64
65
66 void set_half_frame_start(long start){d_ass_half_frame_start = start;}
67 void lock(){d_is_locked = true;}
68 void unlock(){d_is_locked = false;}
69 };
70
71 } // namespace lte
72} // namespace gr
73
74#endif /* INCLUDED_LTE_PSS_SYMBOL_SELECTOR_CVC_IMPL_H */
75
Definition pss_symbol_selector_cvc_impl.h:30
void lock()
Definition pss_symbol_selector_cvc_impl.h:67
void set_half_frame_start(long start)
Definition pss_symbol_selector_cvc_impl.h:66
pss_symbol_selector_cvc_impl(int fftl, std::string &name)
void unlock()
Definition pss_symbol_selector_cvc_impl.h:68
int general_work(int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
void forecast(int noutput_items, gr_vector_int &ninput_items_required)
Extract symbols where PSS is assumed.
Definition pss_symbol_selector_cvc.h:37
Definition bch_crc_check_ant_chooser_bb.h:28