GNU Radio's CCSDS Package
decodeTurbo_impl.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2019 <+YOU OR YOUR COMPANY+>.
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_CCSDS_DECODETURBO_IMPL_H
22 #define INCLUDED_CCSDS_DECODETURBO_IMPL_H
23 
24 #include <ccsds/decodeTurbo.h>
25 extern "C"
26 {
27  #include "fec/turbo/libconvcodes.h"
28  #include "fec/turbo/libturbocodes.h"
29 }
30 #define MAX_COMPONENTS 4
31 namespace gr {
32  namespace ccsds {
33 
35  {
36  private:
37  uint64_t d_count;
38  int d_terminate;
39  pmt::pmt_t d_in_port;
40  pmt::pmt_t d_out_port;
41  int d_base;
42  int d_octets;
43  int d_code_type;
44  int d_iterations;
45  float d_sigma;
46  bool d_update_sigma;
47 
48  float d_rate;
49  int d_info_length;
50  int d_encoded_length;
51 
52  int *d_pi;
53  const char *d_forward_upper[MAX_COMPONENTS];
54  const char *d_forward_lower[MAX_COMPONENTS];
55  const char *d_backward;
56  t_convcode d_code1;
57  t_convcode d_code2;
58  t_turbocode d_turbo;
59 
60 
61  void pmt_in_callback(pmt::pmt_t msg);
62  int puncturing(int k);
63 
64  public:
65  decodeTurbo_impl(int base, int octets, int code_type, int iterations, float sigma, uint8_t update_sigma);
67 
68  // Where all the action really happens
69  int work(int noutput_items,
70  gr_vector_const_void_star &input_items,
71  gr_vector_void_star &output_items);
72  };
73 
74  } // namespace ccsds
75 } // namespace gr
76 
77 #endif /* INCLUDED_CCSDS_DECODETURBO_IMPL_H */
78 
<+description of block+>
Definition: decodeTurbo.h:36
Definition: backup/libturbocodes.h:10
Definition: cc_depuncture.h:28
Definition: backup/libconvcodes.h:8
#define MAX_COMPONENTS
Definition: decodeTurbo_impl.h:30
decodeTurbo_impl(int base, int octets, int code_type, int iterations, float sigma, uint8_t update_sigma)
unsigned char uint8_t
Definition: generateCLTU_impl.h:27
int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
Definition: decodeTurbo_impl.h:34