RadioLib
Universal wireless communication library for Arduino
Loading...
Searching...
No Matches
CRC.h
1#if !defined(_RADIOLIB_CRC_H)
2#define _RADIOLIB_CRC_H
3
4#include "../TypeDef.h"
5#include "../Module.h"
6
7// CCITT CRC properties (used by AX.25)
8#define RADIOLIB_CRC_CCITT_POLY (0x1021)
9#define RADIOLIB_CRC_CCITT_INIT (0xFFFF)
10#define RADIOLIB_CRC_CCITT_OUT (0xFFFF)
11
17 public:
21 uint8_t size = 8;
22
26 uint32_t poly = 0;
27
31 uint32_t init = 0;
32
36 uint32_t out = 0;
37
41 bool refIn = false;
42
46 bool refOut = false;
47
52
59 uint32_t checksum(const uint8_t* buff, size_t len);
60};
61
62// the global singleton
63extern RadioLibCRC RadioLibCRCInstance;
64
65#endif
Class to calculate CRCs of varying formats.
Definition CRC.h:16
uint32_t out
Final XOR value.
Definition CRC.h:36
RadioLibCRC()
Default constructor.
Definition CRC.cpp:3
uint32_t init
Initial value.
Definition CRC.h:31
uint32_t checksum(const uint8_t *buff, size_t len)
Calculate checksum of a buffer.
Definition CRC.cpp:7
bool refOut
Whether to reflect the result.
Definition CRC.h:46
bool refIn
Whether to reflect input bytes.
Definition CRC.h:41
uint8_t size
CRC size in bits.
Definition CRC.h:21
uint32_t poly
CRC polynomial.
Definition CRC.h:26