1#if !defined(_RADIOLIB_FEC_H)
8#define RADIOLIB_PAGER_BCH_N (31)
9#define RADIOLIB_PAGER_BCH_K (21)
10#define RADIOLIB_PAGER_BCH_PRIMITIVE_POLY (0x25)
12#if RADIOLIB_STATIC_ONLY
13#define RADIOLIB_BCH_MAX_N (63)
14#define RADIOLIB_BCH_MAX_K (31)
41 void begin(uint8_t n, uint8_t k, uint32_t poly);
49 uint32_t
encode(uint32_t dataword);
57 #if RADIOLIB_STATIC_ONLY
58 int32_t alphaTo[RADIOLIB_BCH_MAX_N + 1] = { 0 };
59 int32_t indexOf[RADIOLIB_BCH_MAX_N + 1] = { 0 };
60 int32_t generator[RADIOLIB_BCH_MAX_N - RADIOLIB_BCH_MAX_K + 1] = { 0 };
62 int32_t* alphaTo =
nullptr;
63 int32_t* indexOf =
nullptr;
64 int32_t* generator =
nullptr;
121 void begin(uint8_t rt);
133 int16_t
encode(
const uint8_t* in,
size_t in_bits, uint8_t* out,
size_t* out_bits = NULL);
136 uint8_t enc_state = 0;
141static const uint32_t ConvCodeTable1_3[16] = {
142 0x07347043, 0x61521625, 0x16256152, 0x70430734,
143 0x43703407, 0x25165261, 0x52612516, 0x34074370,
144 0x70430734, 0x16256152, 0x61521625, 0x07347043,
145 0x34074370, 0x52612516, 0x25165261, 0x43703407,
148static const uint32_t ConvCodeTable1_2[4] = {
149 0x03122130, 0x21300312, 0x30211203, 0x12033021,
Class to calculate Bose–Chaudhuri–Hocquenghem (BCH) class of forward error correction codes....
Definition FEC.h:23
RadioLibBCH()
Default constructor.
Definition FEC.cpp:4
void begin(uint8_t n, uint8_t k, uint32_t poly)
Initialization method.
Definition FEC.cpp:21
~RadioLibBCH()
Default destructor.
Definition FEC.cpp:8
uint32_t encode(uint32_t dataword)
Encoding method - encodes one data word (without check bits) into a code word (with check bits).
Definition FEC.cpp:200
Class to perform convolutional coding with variable rates. Only 1/2 and 1/3 rate is currently support...
Definition FEC.h:110
RadioLibConvCode()
Default constructor.
Definition FEC.cpp:311
int16_t encode(const uint8_t *in, size_t in_bits, uint8_t *out, size_t *out_bits=NULL)
Encoding method.
Definition FEC.cpp:320
void begin(uint8_t rt)
Initialization method.
Definition FEC.cpp:315