GNU Radio's LORA_SDR Package
interleaver_impl.h
Go to the documentation of this file.
1 #ifndef INCLUDED_LORA_INTERLEAVER_IMPL_H
2 #define INCLUDED_LORA_INTERLEAVER_IMPL_H
3 
5 // #define GRLORA_DEBUG
6 
7 namespace gr {
8  namespace lora_sdr {
9 
11  {
12  private:
13  uint8_t m_cr; ///< Transmission coding rate
14  uint8_t m_sf; ///< Transmission spreading factor
15 
16  uint32_t cw_cnt; ///< count the number of codewords
17  int m_frame_len; ///<length of the frame in number of items
18  bool m_ldro; ///< use the low datarate optimisation mode
19  int m_bw;
20  uint8_t m_ldro_mode; ///< mode of the low datarate optimisation (0: off, 1: on, 2: auto)
21  tag_t m_config_tag;
22  tag_t m_framelen_tag;
23  bool m_has_config_tag; ///<indicate that a configuration tag was received
24 
25 
26  public:
27  interleaver_impl(uint8_t cr, uint8_t sf, uint8_t ldro_mode, int bw);
29 
30  void set_cr(uint8_t cr);
31  uint8_t get_cr();
32  void set_sf(uint8_t sf);
33  void update_var(int new_cr, int new_sf, int new_bw);
34  void forecast (int noutput_items, gr_vector_int &ninput_items_required);
35 
36  int general_work(int noutput_items,
37  gr_vector_int &ninput_items,
38  gr_vector_const_void_star &input_items,
39  gr_vector_void_star &output_items);
40 
41  };
42 
43  } // namespace lora
44 } // namespace gr
45 
46 #endif /* INCLUDED_LORA_INTERLEAVER_IMPL_H */
Definition: interleaver_impl.h:11
void forecast(int noutput_items, gr_vector_int &ninput_items_required)
void update_var(int new_cr, int new_sf, int new_bw)
interleaver_impl(uint8_t cr, uint8_t sf, uint8_t ldro_mode, int bw)
int general_work(int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
<+description of block+>
Definition: interleaver.h:37
ldro_mode
Definition: utilities.h:42
Definition: add_crc.h:28