GNU Radio's LORA_SDR Package
deinterleaver_impl.h
Go to the documentation of this file.
1 #ifndef INCLUDED_LORA_DEINTERLEAVER_IMPL_H
2 #define INCLUDED_LORA_DEINTERLEAVER_IMPL_H
3 
4 // #define GRLORA_DEBUG
6 
7 namespace gr {
8 namespace lora_sdr {
9 
11 private:
12  /**
13  * @brief Transmission Spreading factor
14  *
15  */
16  uint8_t m_sf;
17 
18  /**
19  * @brief Transmission Coding rate
20  *
21  */
22  uint8_t m_cr;
23 
24  /**
25  * @brief Spreading factor to use to deinterleave
26  *
27  */
28  uint8_t sf_app;
29 
30  /**
31  * @brief Length of a codeword
32  *
33  */
34  uint8_t cw_len;
35 
36  /**
37  * @brief Indicate that we need to deinterleave the first block with the
38  * default header parameters (cr=4/8, reduced rate)
39  *
40  */
41  bool m_is_header;
42 
43 public:
44  /**
45  * @brief Construct a new deinterleaver impl object
46  *
47  * @param sf : sampling rate
48  */
49  deinterleaver_impl(uint8_t sf);
50 
51  /**
52  * @brief Destroy the deinterleaver impl object
53  *
54  */
56 
57  /**
58  * @brief Standard gnuradio function to tell the system with
59  *
60  * @param noutput_items : number of output items
61  * @param ninput_items_required : number of required output items
62  */
63  void forecast(int noutput_items, gr_vector_int &ninput_items_required);
64 
65  /**
66  * @brief Main function where the actual computation is done
67  *
68  * @param noutput_items : number of output items
69  * @param ninput_items : number of input items
70  * @param input_items : input (i.e gray demapping output)
71  * @param output_items : output data
72  * @return int
73  */
74  int general_work(int noutput_items, gr_vector_int &ninput_items,
75  gr_vector_const_void_star &input_items,
76  gr_vector_void_star &output_items);
77 };
78 
79 } // namespace lora_sdr
80 } // namespace gr
81 
82 #endif /* INCLUDED_LORA_DEINTERLEAVER_IMPL_H */
gr::lora_sdr::deinterleaver_impl::general_work
int general_work(int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
Main function where the actual computation is done.
gr::lora_sdr::deinterleaver_impl::~deinterleaver_impl
~deinterleaver_impl()
Destroy the deinterleaver impl object.
gr::lora_sdr::deinterleaver_impl::forecast
void forecast(int noutput_items, gr_vector_int &ninput_items_required)
Standard gnuradio function to tell the system with.
gr::lora_sdr::deinterleaver_impl
Definition: deinterleaver_impl.h:10
gr::lora_sdr::deinterleaver_impl::deinterleaver_impl
deinterleaver_impl(uint8_t sf)
Construct a new deinterleaver impl object.
gr::lora_sdr::deinterleaver
Deinterleaves the received payload, for more information about the implementation visit deinterleaver...
Definition: deinterleaver.h:36
gr
Definition: add_crc.h:28
deinterleaver.h