GNU Radio Manual and C++ API Reference 3.10.5.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>
18#include <cstdint>
19#include <vector>
20
21namespace gr {
22namespace trellis {
23
24/*!
25 * \brief PCCC encoder.
26 * \ingroup trellis_coding_blk
27 */
28template <class IN_T, class OUT_T>
29class TRELLIS_API pccc_encoder : virtual public sync_block
30{
31public:
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