diff --git a/_c_r_c_8h_source.html b/_c_r_c_8h_source.html index 069b3f7a..2c858df4 100644 --- a/_c_r_c_8h_source.html +++ b/_c_r_c_8h_source.html @@ -123,7 +123,7 @@ $(document).ready(function(){initNavTree('_c_r_c_8h_source.html',''); initResiza
66 extern RadioLibCRC RadioLibCRCInstance;
67 
68 #endif
-
RadioLibCRC
Definition: CRC.h:19
+
RadioLibCRC
Class to calculate CRCs of varying formats.
Definition: CRC.h:19
RadioLibCRC::checksum
uint32_t checksum(uint8_t *buff, size_t len)
Calcualte checksum of a buffer.
Definition: CRC.cpp:7
RadioLibCRC::out
uint32_t out
Final XOR value.
Definition: CRC.h:39
RadioLibCRC::RadioLibCRC
RadioLibCRC()
Default constructor.
Definition: CRC.cpp:3
diff --git a/_f_e_c_8h_source.html b/_f_e_c_8h_source.html new file mode 100644 index 00000000..382a8f26 --- /dev/null +++ b/_f_e_c_8h_source.html @@ -0,0 +1,139 @@ + + + + + + + +RadioLib: src/utils/FEC.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
RadioLib +
+
Universal wireless communication library for Arduino
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
FEC.h
+
+
+
1 #if !defined(_RADIOLIB_FEC_H)
+
2 #define _RADIOLIB_FEC_H
+
3 
+
4 #include "../TypeDef.h"
+
5 #include "../Module.h"
+
6 #if defined(RADIOLIB_BUILD_ARDUINO)
+
7 #include "../ArduinoHal.h"
+
8 #endif
+
9 
+
10 // BCH(31, 21) code constants
+
11 #define RADIOLIB_PAGER_BCH_N (31)
+
12 #define RADIOLIB_PAGER_BCH_K (21)
+
13 #define RADIOLIB_PAGER_BCH_PRIMITIVE_POLY (0x25)
+
14 
+
21 class RadioLibBCH {
+
22  public:
+
26  RadioLibBCH();
+
27 
+
34  void begin(uint8_t n, uint8_t k, uint32_t poly);
+
35 
+
42  uint32_t encode(uint32_t dataword);
+
43 
+
44  private:
+
45  uint8_t n;
+
46  uint8_t k;
+
47  uint32_t poly;
+
48  uint8_t m;
+
49  int32_t* alphaTo;
+
50  int32_t* indexOf;
+
51  int32_t* generator;
+
52 };
+
53 
+
54 // the global singleton
+
55 extern RadioLibBCH RadioLibBCHInstance;
+
56 
+
57 #endif
+
Class to calculate Bose–Chaudhuri–Hocquenghem (BCH) class of forward error correction codes....
Definition: FEC.h:21
+
RadioLibBCH()
Default constructor.
Definition: FEC.cpp:4
+
void begin(uint8_t n, uint8_t k, uint32_t poly)
Initialization method.
Definition: FEC.cpp:13
+
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:172
+
+
+ + + + diff --git a/_pager_8h_source.html b/_pager_8h_source.html index a1736447..bef55010 100644 --- a/_pager_8h_source.html +++ b/_pager_8h_source.html @@ -91,130 +91,114 @@ $(document).ready(function(){initNavTree('_pager_8h_source.html',''); initResiza
3 
4 #include "../../TypeDef.h"
5 #include "../PhysicalLayer/PhysicalLayer.h"
-
6 
-
7 // frequency shift in Hz
-
8 #define RADIOLIB_PAGER_FREQ_SHIFT_HZ (4500)
-
9 
-
10 // supported encoding schemes
-
11 #define RADIOLIB_PAGER_ASCII (0)
-
12 #define RADIOLIB_PAGER_BCD (1)
-
13 
-
14 // preamble length in 32-bit code words
-
15 #define RADIOLIB_PAGER_PREAMBLE_LENGTH (18)
-
16 
-
17 // protocol-specified code words
-
18 #define RADIOLIB_PAGER_PREAMBLE_CODE_WORD (0xAAAAAAAA)
-
19 #define RADIOLIB_PAGER_FRAME_SYNC_CODE_WORD (0x7CD215D8)
-
20 #define RADIOLIB_PAGER_IDLE_CODE_WORD (0x7A89C197)
-
21 
-
22 // code word type identification flags
-
23 #define RADIOLIB_PAGER_ADDRESS_CODE_WORD (0UL)
-
24 #define RADIOLIB_PAGER_MESSAGE_CODE_WORD (1UL)
-
25 
-
26 // length of code word in bits
-
27 #define RADIOLIB_PAGER_CODE_WORD_LEN (32)
-
28 
-
29 // number of message bits in a single code block
-
30 #define RADIOLIB_PAGER_ADDRESS_POS (13)
-
31 #define RADIOLIB_PAGER_FUNC_BITS_POS (11)
-
32 #define RADIOLIB_PAGER_MESSAGE_BITS_LENGTH (20)
-
33 #define RADIOLIB_PAGER_MESSAGE_END_POS (11)
-
34 
-
35 // number of code words in a batch
-
36 #define RADIOLIB_PAGER_BATCH_LEN (16)
-
37 
-
38 // mask for address bits in a single code word
-
39 #define RADIOLIB_PAGER_ADDRESS_BITS_MASK (0x7FFFE000UL)
-
40 
-
41 // mask for function bits in a single code word
-
42 #define RADIOLIB_PAGER_FUNCTION_BITS_MASK (0x00001800UL)
-
43 
-
44 // mask for BCH bits in a single code word
-
45 #define RADIOLIB_PAGER_BCH_BITS_MASK (0x000007FFUL)
-
46 
-
47 // message type functional bits
-
48 #define RADIOLIB_PAGER_FUNC_BITS_NUMERIC (0b00UL << RADIOLIB_PAGER_FUNC_BITS_POS)
-
49 #define RADIOLIB_PAGER_FUNC_BITS_TONE (0b01UL << RADIOLIB_PAGER_FUNC_BITS_POS)
-
50 #define RADIOLIB_PAGER_FUNC_BITS_ALPHA (0b11UL << RADIOLIB_PAGER_FUNC_BITS_POS)
-
51 
-
52 // the maximum allowed address (2^22 - 1)
-
53 #define RADIOLIB_PAGER_ADDRESS_MAX (2097151)
-
54 
-
55 // BCH(31, 21) code constants
-
56 #define RADIOLIB_PAGER_BCH_M (5)
-
57 #define RADIOLIB_PAGER_BCH_N (31)
-
58 #define RADIOLIB_PAGER_BCH_K (21)
-
59 #define RADIOLIB_PAGER_BCH_D (5)
-
60 
-
61  // BCH(31, 21) primitive polynomial x^5 + x^2 + 1
-
62 #define RADIOLIB_PAGER_BCH_PRIMITIVE_POLY (0x25)
-
63 
-
68 class PagerClient {
-
69  public:
-
74  explicit PagerClient(PhysicalLayer* phy);
-
75 
-
76  // basic methods
-
77 
-
86  int16_t begin(float base, uint16_t speed, bool invert = false, uint16_t shift = RADIOLIB_PAGER_FREQ_SHIFT_HZ);
-
87 
-
93  int16_t sendTone(uint32_t addr);
-
94 
-
95  #if defined(RADIOLIB_BUILD_ARDUINO)
-
103  int16_t transmit(String& str, uint32_t addr, uint8_t encoding = RADIOLIB_PAGER_BCD);
-
104  #endif
-
105 
-
113  int16_t transmit(const char* str, uint32_t addr, uint8_t encoding = RADIOLIB_PAGER_BCD);
-
114 
-
123  int16_t transmit(uint8_t* data, size_t len, uint32_t addr, uint8_t encoding = RADIOLIB_PAGER_BCD);
-
124 
-
125  #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)
-
134  int16_t startReceive(uint32_t pin, uint32_t addr, uint32_t mask = 0xFFFFF);
-
135 
-
140  size_t available();
-
141 
-
142  #if defined(RADIOLIB_BUILD_ARDUINO)
-
152  int16_t readData(String& str, size_t len = 0, uint32_t* addr = NULL);
-
153  #endif
-
154 
-
165  int16_t readData(uint8_t* data, size_t* len, uint32_t* addr = NULL);
-
166 #endif
-
167 
-
168 #if !defined(RADIOLIB_GODMODE)
-
169  private:
-
170 #endif
-
171  PhysicalLayer* phyLayer;
-
172 
-
173  float baseFreq;
-
174  float dataRate;
-
175  uint32_t baseFreqRaw;
-
176  uint16_t shiftFreq;
-
177  uint16_t shiftFreqHz;
-
178  uint16_t bitDuration;
-
179  uint32_t filterAddr;
-
180  uint32_t filterMask;
-
181  bool inv = false;
-
182 
-
183  // BCH encoder
-
184  int32_t bchAlphaTo[RADIOLIB_PAGER_BCH_N + 1];
-
185  int32_t bchIndexOf[RADIOLIB_PAGER_BCH_N + 1];
-
186  int32_t bchG[RADIOLIB_PAGER_BCH_N - RADIOLIB_PAGER_BCH_K + 1];
-
187 
-
188  void write(uint32_t* data, size_t len);
-
189  void write(uint32_t codeWord);
-
190 
-
191 #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)
-
192  uint32_t read();
-
193 #endif
-
194 
-
195  uint8_t encodeBCD(char c);
-
196  char decodeBCD(uint8_t b);
-
197 
-
198  void encoderInit();
-
199  uint32_t encodeBCH(uint32_t data);
-
200 };
-
201 
-
202 #endif
-
PagerClient
Client for Pager communication.
Definition: Pager.h:68
+
6 #include "../../utils/FEC.h"
+
7 
+
8 // frequency shift in Hz
+
9 #define RADIOLIB_PAGER_FREQ_SHIFT_HZ (4500)
+
10 
+
11 // supported encoding schemes
+
12 #define RADIOLIB_PAGER_ASCII (0)
+
13 #define RADIOLIB_PAGER_BCD (1)
+
14 
+
15 // preamble length in 32-bit code words
+
16 #define RADIOLIB_PAGER_PREAMBLE_LENGTH (18)
+
17 
+
18 // protocol-specified code words
+
19 #define RADIOLIB_PAGER_PREAMBLE_CODE_WORD (0xAAAAAAAA)
+
20 #define RADIOLIB_PAGER_FRAME_SYNC_CODE_WORD (0x7CD215D8)
+
21 #define RADIOLIB_PAGER_IDLE_CODE_WORD (0x7A89C197)
+
22 
+
23 // code word type identification flags
+
24 #define RADIOLIB_PAGER_ADDRESS_CODE_WORD (0UL)
+
25 #define RADIOLIB_PAGER_MESSAGE_CODE_WORD (1UL)
+
26 
+
27 // length of code word in bits
+
28 #define RADIOLIB_PAGER_CODE_WORD_LEN (32)
+
29 
+
30 // number of message bits in a single code block
+
31 #define RADIOLIB_PAGER_ADDRESS_POS (13)
+
32 #define RADIOLIB_PAGER_FUNC_BITS_POS (11)
+
33 #define RADIOLIB_PAGER_MESSAGE_BITS_LENGTH (20)
+
34 #define RADIOLIB_PAGER_MESSAGE_END_POS (11)
+
35 
+
36 // number of code words in a batch
+
37 #define RADIOLIB_PAGER_BATCH_LEN (16)
+
38 
+
39 // mask for address bits in a single code word
+
40 #define RADIOLIB_PAGER_ADDRESS_BITS_MASK (0x7FFFE000UL)
+
41 
+
42 // mask for function bits in a single code word
+
43 #define RADIOLIB_PAGER_FUNCTION_BITS_MASK (0x00001800UL)
+
44 
+
45 // mask for BCH bits in a single code word
+
46 #define RADIOLIB_PAGER_BCH_BITS_MASK (0x000007FFUL)
+
47 
+
48 // message type functional bits
+
49 #define RADIOLIB_PAGER_FUNC_BITS_NUMERIC (0b00UL << RADIOLIB_PAGER_FUNC_BITS_POS)
+
50 #define RADIOLIB_PAGER_FUNC_BITS_TONE (0b01UL << RADIOLIB_PAGER_FUNC_BITS_POS)
+
51 #define RADIOLIB_PAGER_FUNC_BITS_ALPHA (0b11UL << RADIOLIB_PAGER_FUNC_BITS_POS)
+
52 
+
53 // the maximum allowed address (2^22 - 1)
+
54 #define RADIOLIB_PAGER_ADDRESS_MAX (2097151)
+
55 
+
60 class PagerClient {
+
61  public:
+
66  explicit PagerClient(PhysicalLayer* phy);
+
67 
+
68  // basic methods
+
69 
+
78  int16_t begin(float base, uint16_t speed, bool invert = false, uint16_t shift = RADIOLIB_PAGER_FREQ_SHIFT_HZ);
+
79 
+
85  int16_t sendTone(uint32_t addr);
+
86 
+
87  #if defined(RADIOLIB_BUILD_ARDUINO)
+
95  int16_t transmit(String& str, uint32_t addr, uint8_t encoding = RADIOLIB_PAGER_BCD);
+
96  #endif
+
97 
+
105  int16_t transmit(const char* str, uint32_t addr, uint8_t encoding = RADIOLIB_PAGER_BCD);
+
106 
+
115  int16_t transmit(uint8_t* data, size_t len, uint32_t addr, uint8_t encoding = RADIOLIB_PAGER_BCD);
+
116 
+
117  #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)
+
126  int16_t startReceive(uint32_t pin, uint32_t addr, uint32_t mask = 0xFFFFF);
+
127 
+
132  size_t available();
+
133 
+
134  #if defined(RADIOLIB_BUILD_ARDUINO)
+
144  int16_t readData(String& str, size_t len = 0, uint32_t* addr = NULL);
+
145  #endif
+
146 
+
157  int16_t readData(uint8_t* data, size_t* len, uint32_t* addr = NULL);
+
158 #endif
+
159 
+
160 #if !defined(RADIOLIB_GODMODE)
+
161  private:
+
162 #endif
+
163  PhysicalLayer* phyLayer;
+
164 
+
165  float baseFreq;
+
166  float dataRate;
+
167  uint32_t baseFreqRaw;
+
168  uint16_t shiftFreq;
+
169  uint16_t shiftFreqHz;
+
170  uint16_t bitDuration;
+
171  uint32_t filterAddr;
+
172  uint32_t filterMask;
+
173  bool inv = false;
+
174 
+
175  void write(uint32_t* data, size_t len);
+
176  void write(uint32_t codeWord);
+
177 
+
178 #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)
+
179  uint32_t read();
+
180 #endif
+
181 
+
182  uint8_t encodeBCD(char c);
+
183  char decodeBCD(uint8_t b);
+
184 };
+
185 
+
186 #endif
+
PagerClient
Client for Pager communication.
Definition: Pager.h:60
PagerClient::begin
int16_t begin(float base, uint16_t speed, bool invert=false, uint16_t shift=RADIOLIB_PAGER_FREQ_SHIFT_HZ)
Initialization method.
Definition: Pager.cpp:29
PagerClient::sendTone
int16_t sendTone(uint32_t addr)
Method to send a tone-only alert to a destination pager.
Definition: Pager.cpp:53
PagerClient::PagerClient
PagerClient(PhysicalLayer *phy)
Default constructor.
Definition: Pager.cpp:22
diff --git a/_physical_layer_8h_source.html b/_physical_layer_8h_source.html index 84897d8a..8d9c88a5 100644 --- a/_physical_layer_8h_source.html +++ b/_physical_layer_8h_source.html @@ -246,7 +246,7 @@ $(document).ready(function(){initNavTree('_physical_layer_8h_source.html',''); i
HellClient
Client for Hellschreiber transmissions.
Definition: Hellschreiber.h:90
Module
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:31
MorseClient
Client for Morse Code communication. The public interface is the same as Arduino Serial.
Definition: Morse.h:93
-
PagerClient
Client for Pager communication.
Definition: Pager.h:68
+
PagerClient
Client for Pager communication.
Definition: Pager.h:60
PhysicalLayer
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:15
PhysicalLayer::startReceive
virtual int16_t startReceive(uint32_t timeout, uint16_t irqFlags, uint16_t irqMask, size_t len)
Interrupt-driven receive method. A DIO pin will be activated when full packet is received....
Definition: PhysicalLayer.cpp:131
PhysicalLayer::randomByte
virtual uint8_t randomByte()
Get one truly random byte from RSSI noise. Must be implemented in module class.
Definition: PhysicalLayer.cpp:289
diff --git a/annotated.html b/annotated.html index 658cabe9..81a85a68 100644 --- a/annotated.html +++ b/annotated.html @@ -110,43 +110,44 @@ $(document).ready(function(){initNavTree('annotated.html',''); initResizable();  CnRF24Control class for nRF24 module  CPagerClientClient for Pager communication  CPhysicalLayerProvides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN. Also extracts some common module-independent methods. Using this interface class allows to use the protocols on various modules without much code duplicity. Because this class is used mainly as interface, all of its virtual members must be implemented in the module class - CRadioLibCRC - CRadioLibHal - CRadioLibPrint - CRF69Control class for RF69 module. Also serves as base class for SX1231 - CRFM22Only exists as alias for Si4432, since there seems to be no difference between RFM22 and Si4432 modules - CRFM23Only exists as alias for Si4431, since there seems to be no difference between RFM23 and Si4431 modules - CRFM95Derived class for RFM95 modules. Overrides some methods from SX1278 due to different parameter ranges - CRFM96Derived class for RFM96 modules. Overrides some methods from SX1278 due to different parameter ranges - CRFM97Derived class for RFM97 modules. Overrides some methods from RFM95 due to different parameter ranges - CRFM98Only exists as alias for RFM96, since there seems to be no difference between RFM96 and RFM98 modules - CRTTYClientClient for RTTY communication. The public interface is the same as Arduino Serial - CSi4430Derived class for Si4430 modules - CSi4431Derived class for Si4431 modules - CSi4432Derived class for Si4432 modules - CSi443xBase class for Si443x series. All derived classes for Si443x (e.g. Si4431 or Si4432) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes - CSSTVClientClient for SSTV transmissions - CSSTVMode_tStructure to save data about supported SSTV modes - CSTM32WLxDerived class for STM32WL modules - CSTM32WLx_Module - CStm32wlxHal - CSX1231Control class for SX1231 module. Overrides some methods from RF69 due to different register values - CSX1261Derived class for SX1261 modules - CSX1262Derived class for SX1262 modules - CSX1268Derived class for SX1268 modules - CSX126xBase class for SX126x series. All derived classes for SX126x (e.g. SX1262 or SX1268) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes - CSX1272Derived class for SX1272 modules. Also used as base class for SX1273. Both modules use the same basic hardware and only differ in parameter ranges - CSX1273Derived class for SX1273 modules. Overrides some methods from SX1272 due to different parameter ranges - CSX1276Derived class for SX1276 modules. Overrides some methods from SX1278 due to different parameter ranges - CSX1277Derived class for SX1277 modules. Overrides some methods from SX1278 due to different parameter ranges - CSX1278Derived class for SX1278 modules. Also used as base class for SX1276, SX1277, SX1279, RFM95 and RFM96. All of these modules use the same basic hardware and only differ in parameter ranges (and names) - CSX1279Derived class for SX1279 modules. Overrides some methods from SX1278 due to different parameter ranges - CSX127xBase class for SX127x series. All derived classes for SX127x (e.g. SX1278 or SX1272) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes - CSX1280Derived class for SX1280 modules - CSX1281Derived class for SX1281 modules - CSX1282Derived class for SX1282 modules - CSX128xBase class for SX128x series. All derived classes for SX128x (e.g. SX1280 or SX1281) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes - Ctone_tStructure to save data about tone + CRadioLibBCHClass to calculate Bose–Chaudhuri–Hocquenghem (BCH) class of forward error correction codes. In theory, this should be able to calculate an arbitrary BCH(N, K) code, but so far it was only tested for BCH(31, 21) + CRadioLibCRCClass to calculate CRCs of varying formats + CRadioLibHal + CRadioLibPrint + CRF69Control class for RF69 module. Also serves as base class for SX1231 + CRFM22Only exists as alias for Si4432, since there seems to be no difference between RFM22 and Si4432 modules + CRFM23Only exists as alias for Si4431, since there seems to be no difference between RFM23 and Si4431 modules + CRFM95Derived class for RFM95 modules. Overrides some methods from SX1278 due to different parameter ranges + CRFM96Derived class for RFM96 modules. Overrides some methods from SX1278 due to different parameter ranges + CRFM97Derived class for RFM97 modules. Overrides some methods from RFM95 due to different parameter ranges + CRFM98Only exists as alias for RFM96, since there seems to be no difference between RFM96 and RFM98 modules + CRTTYClientClient for RTTY communication. The public interface is the same as Arduino Serial + CSi4430Derived class for Si4430 modules + CSi4431Derived class for Si4431 modules + CSi4432Derived class for Si4432 modules + CSi443xBase class for Si443x series. All derived classes for Si443x (e.g. Si4431 or Si4432) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes + CSSTVClientClient for SSTV transmissions + CSSTVMode_tStructure to save data about supported SSTV modes + CSTM32WLxDerived class for STM32WL modules + CSTM32WLx_Module + CStm32wlxHal + CSX1231Control class for SX1231 module. Overrides some methods from RF69 due to different register values + CSX1261Derived class for SX1261 modules + CSX1262Derived class for SX1262 modules + CSX1268Derived class for SX1268 modules + CSX126xBase class for SX126x series. All derived classes for SX126x (e.g. SX1262 or SX1268) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes + CSX1272Derived class for SX1272 modules. Also used as base class for SX1273. Both modules use the same basic hardware and only differ in parameter ranges + CSX1273Derived class for SX1273 modules. Overrides some methods from SX1272 due to different parameter ranges + CSX1276Derived class for SX1276 modules. Overrides some methods from SX1278 due to different parameter ranges + CSX1277Derived class for SX1277 modules. Overrides some methods from SX1278 due to different parameter ranges + CSX1278Derived class for SX1278 modules. Also used as base class for SX1276, SX1277, SX1279, RFM95 and RFM96. All of these modules use the same basic hardware and only differ in parameter ranges (and names) + CSX1279Derived class for SX1279 modules. Overrides some methods from SX1278 due to different parameter ranges + CSX127xBase class for SX127x series. All derived classes for SX127x (e.g. SX1278 or SX1272) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes + CSX1280Derived class for SX1280 modules + CSX1281Derived class for SX1281 modules + CSX1282Derived class for SX1282 modules + CSX128xBase class for SX128x series. All derived classes for SX128x (e.g. SX1280 or SX1281) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes + Ctone_tStructure to save data about tone diff --git a/annotated_dup.js b/annotated_dup.js index b8732a25..91637ca5 100644 --- a/annotated_dup.js +++ b/annotated_dup.js @@ -21,6 +21,7 @@ var annotated_dup = [ "nRF24", "classn_r_f24.html", "classn_r_f24" ], [ "PagerClient", "class_pager_client.html", "class_pager_client" ], [ "PhysicalLayer", "class_physical_layer.html", "class_physical_layer" ], + [ "RadioLibBCH", "class_radio_lib_b_c_h.html", "class_radio_lib_b_c_h" ], [ "RadioLibCRC", "class_radio_lib_c_r_c.html", "class_radio_lib_c_r_c" ], [ "RadioLibHal", "class_radio_lib_hal.html", "class_radio_lib_hal" ], [ "RadioLibPrint", "class_radio_lib_print.html", "class_radio_lib_print" ], diff --git a/class_radio_lib_b_c_h-members.html b/class_radio_lib_b_c_h-members.html new file mode 100644 index 00000000..1a4d6b88 --- /dev/null +++ b/class_radio_lib_b_c_h-members.html @@ -0,0 +1,104 @@ + + + + + + + +RadioLib: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
RadioLib +
+
Universal wireless communication library for Arduino
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
RadioLibBCH Member List
+
+
+ +

This is the complete list of members for RadioLibBCH, including all inherited members.

+ + + + +
begin(uint8_t n, uint8_t k, uint32_t poly)RadioLibBCH
encode(uint32_t dataword)RadioLibBCH
RadioLibBCH()RadioLibBCH
+
+ + + + diff --git a/class_radio_lib_b_c_h.html b/class_radio_lib_b_c_h.html new file mode 100644 index 00000000..22819db5 --- /dev/null +++ b/class_radio_lib_b_c_h.html @@ -0,0 +1,199 @@ + + + + + + + +RadioLib: RadioLibBCH Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
RadioLib +
+
Universal wireless communication library for Arduino
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
RadioLibBCH Class Reference
+
+
+ +

Class to calculate Bose–Chaudhuri–Hocquenghem (BCH) class of forward error correction codes. In theory, this should be able to calculate an arbitrary BCH(N, K) code, but so far it was only tested for BCH(31, 21). + More...

+ +

#include <FEC.h>

+ + + + + + + + + + + +

+Public Member Functions

RadioLibBCH ()
 Default constructor.
 
void begin (uint8_t n, uint8_t k, uint32_t poly)
 Initialization method. More...
 
uint32_t encode (uint32_t dataword)
 Encoding method - encodes one data word (without check bits) into a code word (with check bits). More...
 
+

Detailed Description

+

Class to calculate Bose–Chaudhuri–Hocquenghem (BCH) class of forward error correction codes. In theory, this should be able to calculate an arbitrary BCH(N, K) code, but so far it was only tested for BCH(31, 21).

+

Member Function Documentation

+ +

◆ begin()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void RadioLibBCH::begin (uint8_t n,
uint8_t k,
uint32_t poly 
)
+
+ +

Initialization method.

+
Parameters
+ + + + +
nCode word length in bits, up to 32.
kData portion length in bits, up to "n".
polyPowers of the irreducible polynomial.
+
+
+ +
+
+ +

◆ encode()

+ +
+
+ + + + + + + + +
uint32_t RadioLibBCH::encode (uint32_t dataword)
+
+ +

Encoding method - encodes one data word (without check bits) into a code word (with check bits).

+
Parameters
+ + +
datawordData word without check bits. The caller is responsible to make sure the data is on the correct bit positions!
+
+
+
Returns
Code word with error check bits.
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/class_radio_lib_b_c_h.js b/class_radio_lib_b_c_h.js new file mode 100644 index 00000000..033834bb --- /dev/null +++ b/class_radio_lib_b_c_h.js @@ -0,0 +1,6 @@ +var class_radio_lib_b_c_h = +[ + [ "RadioLibBCH", "class_radio_lib_b_c_h.html#a39d55c0292e4c9337ee0672cd5241118", null ], + [ "begin", "class_radio_lib_b_c_h.html#aba6f10d4ac2d40eb2222d1081a34c88b", null ], + [ "encode", "class_radio_lib_b_c_h.html#afa0a2eb58245715536acb781cd351d8a", null ] +]; \ No newline at end of file diff --git a/class_radio_lib_c_r_c.html b/class_radio_lib_c_r_c.html index 2c45f2a5..f0bda63a 100644 --- a/class_radio_lib_c_r_c.html +++ b/class_radio_lib_c_r_c.html @@ -90,6 +90,11 @@ $(document).ready(function(){initNavTree('class_radio_lib_c_r_c.html',''); initR
RadioLibCRC Class Reference
+ +

Class to calculate CRCs of varying formats. + More...

+ +

#include <CRC.h>

@@ -128,7 +133,9 @@ bool 

Public Member Functions

 Whether to reflect the result.
 
-

Member Function Documentation

+

Detailed Description

+

Class to calculate CRCs of varying formats.

+

Member Function Documentation

◆ checksum()

diff --git a/classes.html b/classes.html index b318623b..8413985b 100644 --- a/classes.html +++ b/classes.html @@ -123,7 +123,7 @@ $(document).ready(function(){initNavTree('classes.html',''); initResizable(); })
PagerClient
PhysicalLayer
R
-
RadioLibCRC
RadioLibHal
RadioLibPrint
RF69
RFM22
RFM23
RFM95
RFM96
RFM97
RFM98
Module::RfSwitchMode_t
RTTYClient
+
RadioLibBCH
RadioLibCRC
RadioLibHal
RadioLibPrint
RF69
RFM22
RFM23
RFM95
RFM96
RFM97
RFM98
Module::RfSwitchMode_t
RTTYClient
S
Si4430
Si4431
Si4432
Si443x
SSTVClient
SSTVMode_t
STM32WLx
STM32WLx_Module
Stm32wlxHal
SX1231
SX1261
SX1262
SX1268
SX126x
SX1272
SX1273
SX1276
SX1277
SX1278
SX1279
SX127x
SX1280
SX1281
SX1282
SX128x
diff --git a/dir_313caf1132e152dd9b58bea13a4052ca.js b/dir_313caf1132e152dd9b58bea13a4052ca.js index dd14ed0d..88a3da41 100644 --- a/dir_313caf1132e152dd9b58bea13a4052ca.js +++ b/dir_313caf1132e152dd9b58bea13a4052ca.js @@ -1,4 +1,5 @@ var dir_313caf1132e152dd9b58bea13a4052ca = [ - [ "CRC.h", "_c_r_c_8h_source.html", null ] + [ "CRC.h", "_c_r_c_8h_source.html", null ], + [ "FEC.h", "_f_e_c_8h_source.html", null ] ]; \ No newline at end of file diff --git a/files.html b/files.html index 379466d0..b878fa00 100644 --- a/files.html +++ b/files.html @@ -164,13 +164,14 @@ $(document).ready(function(){initNavTree('files.html',''); initResizable(); });  SSTV.h   utils  CRC.h - ArduinoHal.h - BuildOpt.h - BuildOptUser.h - Hal.h - Module.h - RadioLib.h - TypeDef.h + FEC.h + ArduinoHal.h + BuildOpt.h + BuildOptUser.h + Hal.h + Module.h + RadioLib.h + TypeDef.h
diff --git a/functions_b.html b/functions_b.html index 1634114c..48d4b3f8 100644 --- a/functions_b.html +++ b/functions_b.html @@ -100,6 +100,7 @@ $(document).ready(function(){initNavTree('functions_b.html',''); initResizable() , MorseClient , nRF24 , PagerClient +, RadioLibBCH , RF69 , RFM95 , RFM96 diff --git a/functions_e.html b/functions_e.html index 897e154d..cbde3ce2 100644 --- a/functions_e.html +++ b/functions_e.html @@ -98,6 +98,9 @@ $(document).ready(function(){initNavTree('functions_e.html',''); initResizable() : CC1101 , RF69 +
  • encode() +: RadioLibBCH +
  • explicitHeader() : SX126x , SX1272 diff --git a/functions_func_b.html b/functions_func_b.html index 7eb48203..771c44bb 100644 --- a/functions_func_b.html +++ b/functions_func_b.html @@ -97,6 +97,7 @@ $(document).ready(function(){initNavTree('functions_func_b.html',''); initResiza , MorseClient , nRF24 , PagerClient +, RadioLibBCH , RF69 , RFM95 , RFM96 diff --git a/functions_func_e.html b/functions_func_e.html index c0301d9c..7c580bdb 100644 --- a/functions_func_e.html +++ b/functions_func_e.html @@ -98,6 +98,9 @@ $(document).ready(function(){initNavTree('functions_func_e.html',''); initResiza : CC1101 , RF69
  • +
  • encode() +: RadioLibBCH +
  • explicitHeader() : SX126x , SX1272 diff --git a/functions_func_r.html b/functions_func_r.html index 19c41243..10b45a4f 100644 --- a/functions_func_r.html +++ b/functions_func_r.html @@ -85,6 +85,9 @@ $(document).ready(function(){initNavTree('functions_func_r.html',''); initResiza  

    - r -