GNU Radio Manual and C++ API Reference  3.10.9.1
The Free & Open Software Radio Ecosystem
pccc_encoder.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2004,2012,2018 Free Software Foundation, Inc.
4  *
5  * This file is part of GNU Radio
6  *
7  * SPDX-License-Identifier: GPL-3.0-or-later
8  *
9  */
10 
11 #ifndef PCCC_ENCODER_H
12 #define PCCC_ENCODER_H
13 
14 #include <gnuradio/sync_block.h>
15 #include <gnuradio/trellis/api.h>
16 #include <gnuradio/trellis/fsm.h>
18 #include <cstdint>
19 #include <vector>
20 
21 namespace gr {
22 namespace trellis {
23 
24 /*!
25  * \brief PCCC encoder.
26  * \ingroup trellis_coding_blk
27  */
28 template <class IN_T, class OUT_T>
29 class TRELLIS_API pccc_encoder : virtual public sync_block
30 {
31 public:
32  typedef std::shared_ptr<pccc_encoder<IN_T, OUT_T>> sptr;
33 
34  static sptr make(const fsm& FSM1,
35  int ST1,
36  const fsm& FSM2,
37  int ST2,
38  const interleaver& INTERLEAVER,
39  int blocklength);
40 
41  virtual fsm FSM1() const = 0;
42  virtual int ST1() const = 0;
43  virtual fsm FSM2() const = 0;
44  virtual int ST2() const = 0;
45  virtual interleaver INTERLEAVER() const = 0;
46  virtual int blocklength() const = 0;
47 };
54 
55 
56 } /* namespace trellis */
57 } /* namespace gr */
58 
59 #endif /* PCCC_ENCODER_H */
synchronous 1:1 input to output with history
Definition: sync_block.h:26
Finite State Machine Specification class.
Definition: fsm.h:33
INTERLEAVER class.
Definition: interleaver.h:26
PCCC encoder.
Definition: pccc_encoder.h:30
virtual fsm FSM2() const =0
virtual int ST1() const =0
std::shared_ptr< pccc_encoder< IN_T, OUT_T > > sptr
Definition: pccc_encoder.h:32
virtual int ST2() const =0
virtual fsm FSM1() const =0
static sptr make(const fsm &FSM1, int ST1, const fsm &FSM2, int ST2, const interleaver &INTERLEAVER, int blocklength)
virtual interleaver INTERLEAVER() const =0
virtual int blocklength() const =0
#define TRELLIS_API
Definition: gr-trellis/include/gnuradio/trellis/api.h:18
pccc_encoder< std::uint8_t, std::uint8_t > pccc_encoder_bb
Definition: pccc_encoder.h:48
pccc_encoder< std::int16_t, std::int16_t > pccc_encoder_ss
Definition: pccc_encoder.h:51
pccc_encoder< std::uint8_t, std::int32_t > pccc_encoder_bi
Definition: pccc_encoder.h:50
pccc_encoder< std::int32_t, std::int32_t > pccc_encoder_ii
Definition: pccc_encoder.h:53
pccc_encoder< std::int16_t, std::int32_t > pccc_encoder_si
Definition: pccc_encoder.h:52
pccc_encoder< std::uint8_t, std::int16_t > pccc_encoder_bs
Definition: pccc_encoder.h:49
GNU Radio logging wrapper.
Definition: basic_block.h:29