GNU Radio Manual and C++ API Reference  3.10.9.1
The Free & Open Software Radio Ecosystem
sccc_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 SCCC_ENCODER_H
12 #define SCCC_ENCODER_H
13 
14 #include <gnuradio/sync_block.h>
15 #include <gnuradio/trellis/api.h>
16 #include <gnuradio/trellis/fsm.h>
18 #include <vector>
19 
20 namespace gr {
21 namespace trellis {
22 
23 /*!
24  * \brief SCCC encoder.
25  * \ingroup trellis_coding_blk
26  */
27 template <class IN_T, class OUT_T>
28 class TRELLIS_API sccc_encoder : virtual public sync_block
29 {
30 public:
31  typedef std::shared_ptr<sccc_encoder<IN_T, OUT_T>> sptr;
32 
33  static sptr make(const fsm& FSMo,
34  int STo,
35  const fsm& FSMi,
36  int STi,
37  const interleaver& INTERLEAVER,
38  int blocklength);
39 
40  virtual fsm FSMo() const = 0;
41  virtual int STo() const = 0;
42  virtual fsm FSMi() const = 0;
43  virtual int STi() const = 0;
44  virtual interleaver INTERLEAVER() const = 0;
45  virtual int blocklength() const = 0;
46 };
53 
54 } /* namespace trellis */
55 } /* namespace gr */
56 
57 #endif /* SCCC_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
SCCC encoder.
Definition: sccc_encoder.h:29
virtual fsm FSMo() const =0
virtual int STo() const =0
virtual fsm FSMi() const =0
std::shared_ptr< sccc_encoder< IN_T, OUT_T > > sptr
Definition: sccc_encoder.h:31
virtual interleaver INTERLEAVER() const =0
virtual int blocklength() const =0
virtual int STi() const =0
static sptr make(const fsm &FSMo, int STo, const fsm &FSMi, int STi, const interleaver &INTERLEAVER, int blocklength)
#define TRELLIS_API
Definition: gr-trellis/include/gnuradio/trellis/api.h:18
sccc_encoder< std::uint8_t, std::int16_t > sccc_encoder_bs
Definition: sccc_encoder.h:48
sccc_encoder< std::uint8_t, std::int32_t > sccc_encoder_si
Definition: sccc_encoder.h:51
sccc_encoder< std::uint8_t, std::uint8_t > sccc_encoder_bb
Definition: sccc_encoder.h:47
sccc_encoder< std::int32_t, std::int32_t > sccc_encoder_ii
Definition: sccc_encoder.h:52
sccc_encoder< std::int16_t, std::int16_t > sccc_encoder_ss
Definition: sccc_encoder.h:50
sccc_encoder< std::uint8_t, std::int32_t > sccc_encoder_bi
Definition: sccc_encoder.h:49
GNU Radio logging wrapper.
Definition: basic_block.h:29