Loading...
Searching...
No Matches
pccc_encoder.h
Go to the documentation of this file.
/* -*- c++ -*- */
/*
* Copyright 2004,2012,2018 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
*/
#ifndef PCCC_ENCODER_H
#define PCCC_ENCODER_H
#include <gnuradio/sync_block.h>
#include <gnuradio/trellis/api.h>
#include <gnuradio/trellis/fsm.h>
#include <gnuradio/trellis/interleaver.h>
#include <cstdint>
#include <vector>
namespace gr {
namespace trellis {
/*!
* \brief PCCC encoder.
* \ingroup trellis_coding_blk
*/
template <class IN_T, class OUT_T>
class TRELLIS_API pccc_encoder : virtual public sync_block
{
public:
typedef std::shared_ptr<pccc_encoder<IN_T, OUT_T>> sptr;
static sptr make(const fsm& FSM1,
int ST1,
const fsm& FSM2,
int ST2,
const interleaver& INTERLEAVER,
int blocklength);
virtual fsm FSM1() const = 0;
virtual int ST1() const = 0;
virtual fsm FSM2() const = 0;
virtual int ST2() const = 0;
virtual interleaver INTERLEAVER() const = 0;
virtual int blocklength() const = 0;
};
typedef pccc_encoder<std::uint8_t, std::uint8_t> pccc_encoder_bb;
typedef pccc_encoder<std::uint8_t, std::int16_t> pccc_encoder_bs;
typedef pccc_encoder<std::uint8_t, std::int32_t> pccc_encoder_bi;
typedef pccc_encoder<std::int16_t, std::int16_t> pccc_encoder_ss;
typedef pccc_encoder<std::int16_t, std::int32_t> pccc_encoder_si;
typedef pccc_encoder<std::int32_t, std::int32_t> pccc_encoder_ii;
} /* namespace trellis */
} /* namespace gr */
#endif /* PCCC_ENCODER_H */
gr::sync_block::sync_block
sync_block(void)
Definition sync_block.h:28
gr::trellis::fsm
Finite State Machine Specification class.
Definition fsm.h:33
gr::trellis::interleaver
INTERLEAVER class.
Definition interleaver.h:27
gr::trellis::pccc_encoder
PCCC encoder.
Definition pccc_encoder.h:30
gr::trellis::pccc_encoder< std::uint8_t, std::uint8_t >::FSM2
virtual fsm FSM2() const=0
gr::trellis::pccc_encoder< std::uint8_t, std::uint8_t >::ST1
virtual int ST1() const=0
gr::trellis::pccc_encoder::sptr
std::shared_ptr< pccc_encoder< IN_T, OUT_T > > sptr
Definition pccc_encoder.h:32
gr::trellis::pccc_encoder< std::uint8_t, std::uint8_t >::ST2
virtual int ST2() const=0
gr::trellis::pccc_encoder< std::uint8_t, std::uint8_t >::FSM1
virtual fsm FSM1() const=0
gr::trellis::pccc_encoder::make
static sptr make(const fsm &FSM1, int ST1, const fsm &FSM2, int ST2, const interleaver &INTERLEAVER, int blocklength)
gr::trellis::pccc_encoder< std::uint8_t, std::uint8_t >::INTERLEAVER
virtual interleaver INTERLEAVER() const=0
gr::trellis::pccc_encoder< std::uint8_t, std::uint8_t >::blocklength
virtual int blocklength() const=0
fsm.h
api.h
TRELLIS_API
#define TRELLIS_API
Definition gr-trellis/include/gnuradio/trellis/api.h:18
interleaver.h
gr::trellis
Definition base.h:17
gr::trellis::pccc_encoder_bb
pccc_encoder< std::uint8_t, std::uint8_t > pccc_encoder_bb
Definition pccc_encoder.h:48
gr::trellis::pccc_encoder_ss
pccc_encoder< std::int16_t, std::int16_t > pccc_encoder_ss
Definition pccc_encoder.h:51
gr::trellis::pccc_encoder_bi
pccc_encoder< std::uint8_t, std::int32_t > pccc_encoder_bi
Definition pccc_encoder.h:50
gr::trellis::pccc_encoder_ii
pccc_encoder< std::int32_t, std::int32_t > pccc_encoder_ii
Definition pccc_encoder.h:53
gr::trellis::pccc_encoder_si
pccc_encoder< std::int16_t, std::int32_t > pccc_encoder_si
Definition pccc_encoder.h:52
gr::trellis::pccc_encoder_bs
pccc_encoder< std::uint8_t, std::int16_t > pccc_encoder_bs
Definition pccc_encoder.h:49
gr
GNU Radio logging wrapper.
Definition basic_block.h:29
sync_block.h