include/satellites/encode_rs.h
Go to the documentation of this file.
/* -*- c++ -*- */
/*
* Copyright 2018,2020,2024 Daniel Estevez <daniel@destevez.net>
*
* This file is part of gr-satellites
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
*/
#ifndef INCLUDED_SATELLITES_ENCODE_RS_H
#define INCLUDED_SATELLITES_ENCODE_RS_H
#include <gnuradio/sync_block.h>
#include <satellites/api.h>
namespace gr {
namespace satellites {
/*!
* \brief Reed-Solomon encoder
* \ingroup satellites
*
*/
class SATELLITES_API encode_rs : virtual public gr::sync_block
{
public:
typedef std::shared_ptr<encode_rs> sptr;
/*!
* \brief Constructs a CCSDS Reed Solomon encoder using PDU IO.
*
* \param dual_basis Selects the dual or conventional basis.
* \param interleave Interleave depth.
*/
static sptr make(bool dual_basis, int interleave = 1);
/*!
* \brief Constructs a CCSDS Reed Solomon encoder using vector stream IO.
*
* \param frame_size Input frame size.
* \param dual_basis Selects the dual or conventional basis.
* \param interleave Interleave depth.
*/
static sptr make(int frame_size, bool dual_basis, int interleave = 1);
/*!
* \brief Constructs a generic Reed Solomon encoder using PDU IO.
*
* \param symsize Size of the finite field elements.
* \param gfpoly Polynomial defining the finite field.
* \param fcr First consecutive root of the Reed-Solomon generator polynomial.
* \param prim Primitive element used in the generator polynomial.
* \param nroots Number of roots of the generator polynomial.
* \param interleave Interleave depth.
*/
static sptr
make(int symsize, int gfpoly, int fcr, int prim, int nroots, int interleave = 1);
/*!
* \brief Constructs a generic Reed Solomon encoder using vector stream IO.
*
* \param frame_size Input frame size.
* \param symsize Size of the finite field elements.
* \param gfpoly Polynomial defining the finite field.
* \param fcr First consecutive root of the Reed-Solomon generator polynomial.
* \param prim Primitive element used in the generator polynomial.
* \param nroots Number of roots of the generator polynomial.
* \param interleave Interleave depth.
*/
static sptr make(int frame_size,
int symsize,
int gfpoly,
int fcr,
int prim,
int nroots,
int interleave);
};
} // namespace satellites
} // namespace gr
#endif /* INCLUDED_SATELLITES_ENCODE_RS_H */
api.h
SATELLITES_API
#define SATELLITES_API
Definition api.h:31
gr::satellites::encode_rs
Reed-Solomon encoder.
Definition include/satellites/encode_rs.h:26
gr::satellites::encode_rs::sptr
std::shared_ptr< encode_rs > sptr
Definition include/satellites/encode_rs.h:28
gr::satellites::encode_rs::make
static sptr make(int frame_size, int symsize, int gfpoly, int fcr, int prim, int nroots, int interleave)
Constructs a generic Reed Solomon encoder using vector stream IO.
gr::satellites::encode_rs::make
static sptr make(bool dual_basis, int interleave=1)
Constructs a CCSDS Reed Solomon encoder using PDU IO.
gr::satellites::encode_rs::make
static sptr make(int symsize, int gfpoly, int fcr, int prim, int nroots, int interleave=1)
Constructs a generic Reed Solomon encoder using PDU IO.
gr::satellites::encode_rs::make
static sptr make(int frame_size, bool dual_basis, int interleave=1)
Constructs a CCSDS Reed Solomon encoder using vector stream IO.
nroots
rs nroots
Definition init_rs.h:80
fcr
rs fcr
Definition init_rs.h:78
prim
rs prim
Definition init_rs.h:79
gr::satellites
Definition ax100_decode.h:18
gr
Definition ax100_decode.h:17