GNU Radio Manual and C++ API Reference 3.7.14.0
The Free & Open Software Radio Ecosystem
siso_combined_f.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2004,2012 Free Software Foundation, Inc.
4 *
5 * This file is part of GNU Radio
6 *
7 * GNU Radio is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 3, or (at your option)
10 * any later version.
11 *
12 * GNU Radio is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with GNU Radio; see the file COPYING. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street,
20 * Boston, MA 02110-1301, USA.
21 */
22
23#ifndef INCLUDED_TRELLIS_SISO_COMBINED_F_H
24#define INCLUDED_TRELLIS_SISO_COMBINED_F_H
25
26#include <gnuradio/block.h>
32
33namespace gr {
34namespace trellis {
35
36/*!
37 * \ingroup trellis_coding_blk
38 */
39class TRELLIS_API siso_combined_f : virtual public block
40{
41public:
42 // gr::trellis::siso_combined_f::sptr
43 typedef boost::shared_ptr<siso_combined_f> sptr;
44
45 static sptr make(const fsm& FSM,
46 int K,
47 int S0,
48 int SK,
49 bool POSTI,
50 bool POSTO,
51 siso_type_t d_SISO_TYPE,
52 int D,
53 const std::vector<float>& TABLE,
55
56 virtual fsm FSM() const = 0;
57 virtual int K() const = 0;
58 virtual int S0() const = 0;
59 virtual int SK() const = 0;
60 virtual bool POSTI() const = 0;
61 virtual bool POSTO() const = 0;
62 virtual siso_type_t SISO_TYPE() const = 0;
63 virtual int D() const = 0;
64 virtual std::vector<float> TABLE() const = 0;
66
67 virtual void set_FSM(const fsm& FSM) = 0;
68 virtual void set_K(int K) = 0;
69 virtual void set_S0(int S0) = 0;
70 virtual void set_SK(int SK) = 0;
71 virtual void set_POSTI(bool POSTI) = 0;
72 virtual void set_POSTO(bool POSTO) = 0;
73 virtual void set_SISO_TYPE(trellis::siso_type_t type) = 0;
74 virtual void set_D(int D) = 0;
75 virtual void set_TABLE(const std::vector<float>& table) = 0;
77};
78
79} /* namespace trellis */
80} /* namespace gr */
81
82#endif /* INCLUDED_TRELLIS_SISO_COMBINED_F_H */
The abstract base class for all 'terminal' processing blocks.
Definition: block.h:66
Finite State Machine Specification class.
Definition: fsm.h:44
Definition: siso_combined_f.h:40
virtual void set_S0(int S0)=0
virtual bool POSTI() const =0
virtual siso_type_t SISO_TYPE() const =0
boost::shared_ptr< siso_combined_f > sptr
Definition: siso_combined_f.h:43
virtual digital::trellis_metric_type_t TYPE() const =0
virtual void set_SISO_TYPE(trellis::siso_type_t type)=0
virtual int D() const =0
virtual void set_POSTO(bool POSTO)=0
virtual int S0() const =0
static sptr make(const fsm &FSM, int K, int S0, int SK, bool POSTI, bool POSTO, siso_type_t d_SISO_TYPE, int D, const std::vector< float > &TABLE, digital::trellis_metric_type_t TYPE)
virtual int SK() const =0
virtual void set_SK(int SK)=0
virtual void set_TABLE(const std::vector< float > &table)=0
virtual void set_K(int K)=0
virtual void set_D(int D)=0
virtual std::vector< float > TABLE() const =0
virtual void set_POSTI(bool POSTI)=0
virtual bool POSTO() const =0
virtual int K() const =0
virtual fsm FSM() const =0
virtual void set_TYPE(digital::trellis_metric_type_t type)=0
virtual void set_FSM(const fsm &FSM)=0
#define TRELLIS_API
Definition: gr-trellis/include/gnuradio/trellis/api.h:30
trellis_metric_type_t
Definition: metric_type.h:29
siso_type_t
Definition: siso_type.h:29
Include this header to use the message passing features.
Definition: basic_block.h:45