1#if !defined(_RADIOLIB_UTILS_H)
2#define _RADIOLIB_UTILS_H
7#include "../BuildOpt.h"
10#define SET_BIT_IN_ARRAY_MSB(A, k) ( A[((k)/8)] |= (1 << ((k)%8)) )
11#define CLEAR_BIT_IN_ARRAY_MSB(A, k) ( A[((k)/8)] &= ~(1 << ((k)%8)) )
12#define TEST_BIT_IN_ARRAY_MSB(A, k) ( A[((k)/8)] & (1 << ((k)%8)) )
13#define GET_BIT_IN_ARRAY_MSB(A, k) ( (A[((k)/8)] & (1 << ((k)%8))) ? 1 : 0 )
14#define SET_BIT_IN_ARRAY_LSB(A, k) ( A[((k)/8)] |= (1 << (7 - ((k)%8))) )
15#define CLEAR_BIT_IN_ARRAY_LSB(A, k) ( A[((k)/8)] &= ~(1 << (7 - ((k)%8))) )
16#define TEST_BIT_IN_ARRAY_LSB(A, k) ( A[((k)/8)] & (1 << (7 - ((k)%8))) )
17#define GET_BIT_IN_ARRAY_LSB(A, k) ( (A[((k)/8)] & (1 << (7 - ((k)%8)))) ? 1 : 0 )
21#define RADIOLIB_SCRAMBLER_G3RUH_POLY (0x00021001UL)
22#define RADIOLIB_SCRAMBLER_G3RUH_INIT (0x00000000UL)
30uint32_t rlb_reflect(uint32_t in, uint8_t bits);
40void rlb_scrambler(uint8_t* data,
size_t len,
const uint32_t poly,
const uint32_t init,
bool scramble);
51void rlb_hexdump(
const char* level,
const uint8_t* data,
size_t len, uint32_t offset = 0, uint8_t width = 1,
bool be =
false);
54size_t rlb_printf(
bool ts,
const char* format, ...);