mirror of
https://github.com/Show-maket/IR-protocol.git
synced 2025-05-04 07:10:16 +00:00
cleanup
This commit is contained in:
parent
469d9875c8
commit
02410cc78c
@ -374,7 +374,7 @@ void IR_Decoder::writeToBuffer(bool bit) {
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
}
|
||||
|
||||
bool IR_Decoder::crcCheck(uint8_t len, uint16_t &crc) {
|
||||
bool IR_Decoder::crcCheck(uint8_t len, crc_t &crc) {
|
||||
bool crcOK = false;
|
||||
|
||||
crc = 0;
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
#define subBufferSize 7 //Буфер для складирования фронтов, пока их не обработают
|
||||
|
||||
|
||||
class IR_Encoder;
|
||||
class IR_Decoder : private IR_FOX {
|
||||
friend IR_Encoder;
|
||||
@ -200,7 +201,7 @@ private:
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
void noFunc();
|
||||
volatile uint8_t currentSubBufferIndex; // Счетчик текущей позиции во вспомогательном буфере фронтов/спадов
|
||||
|
||||
|
||||
struct FrontStorage { // Структура для хранения времени и направления фронта/спада
|
||||
volatile uint32_t time; // Время
|
||||
volatile bool dir; // Направление (true = ↑; false = ↓)
|
||||
@ -220,7 +221,7 @@ private:
|
||||
volatile FrontStorage subBuffer[subBufferSize]; // вспомогательный буфер для хранения необработанных фронтов/спадов
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
uint8_t* dataBuffer = nullptr; // Указатель на буффер данных
|
||||
uint32_t prevRise,prevPrevRise, prevFall, prevPrevFall; // Время предыдущих фронтов/спадов
|
||||
uint32_t prevRise, prevPrevRise, prevFall, prevPrevFall; // Время предыдущих фронтов/спадов
|
||||
uint16_t errorCounter = 0; // Счётчик ошибок
|
||||
int8_t preambFrontCounter = 0; // Счётчик __/``` ↑ преамбулы
|
||||
int16_t bufBitPos = 0; // Позиция для записи бита в буффер
|
||||
@ -230,14 +231,14 @@ private:
|
||||
/// @param len Длина в байтах проверяемых данных
|
||||
/// @param crc Результат рассчёта crc (Выходной параметр)
|
||||
/// @return true если crc верно
|
||||
bool crcCheck(uint8_t len, uint16_t &crc);
|
||||
bool crcCheck(uint8_t len, uint16_t& crc);
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
bool isData = true; // Флаг относится ли бит к данным, или битам синхронизации
|
||||
uint16_t i_dataBuffer; // Счётчик буфера данных
|
||||
uint8_t nextControlBit = bitPerByte; // Метка для смены флага isData
|
||||
uint8_t i_syncBit; // Счётчик битов синхронизации
|
||||
uint8_t err_syncBit; // Счётчик ошибок синхронизации
|
||||
|
||||
|
||||
/// @brief Запиь бита в буффер, а так же проверка битов синхранизации и их фильтрация
|
||||
/// @param Бит данных
|
||||
void writeToBuffer(bool);
|
||||
|
20
IR_config.h
20
IR_config.h
@ -11,7 +11,7 @@
|
||||
IR_MSG_ACCEPT с адреса 0 воспринимается всеми устройствами
|
||||
|
||||
|
||||
Адресное пространство:
|
||||
Адресное пространство:
|
||||
|
||||
Излучатели контрольных точек: 1000 ~ 1999
|
||||
Излучатели без обратной связиЖ 2000 ~ 2999
|
||||
@ -70,6 +70,7 @@ msg type:
|
||||
|
||||
/*
|
||||
/////////////////////////////////////////////////////////////////////////////////////*/
|
||||
typedef uint16_t crc_t;
|
||||
|
||||
#define bytePerPack 3 // колличество байтов в пакете
|
||||
#ifndef freeFrec
|
||||
@ -89,13 +90,12 @@ msg type:
|
||||
#define addrBytes 2
|
||||
#define msgBytes 1
|
||||
#define crcBytes 2
|
||||
typedef uint16_t crc_t;
|
||||
#define poly1 0x31
|
||||
#define poly2 0x8C
|
||||
#define syncBits 3U // количество битов синхронизации
|
||||
|
||||
#define dataByteSizeMax (msgBytes + addrBytes + addrBytes + bytePerPack + crcBytes)
|
||||
// размер msg в битах // размер короткой посылки в битах
|
||||
// размер msg в битах // размер короткой посылки в битах
|
||||
#define dataBitSize ((8 + syncBits) * dataByteSizeMax) // размер посылки с данными в битах
|
||||
#define bufferBitSizeMax (dataBitSize) // Размер буффера в битах
|
||||
|
||||
@ -111,9 +111,9 @@ typedef uint16_t crc_t;
|
||||
|
||||
#define bitTakts (bitActiveTakts+bitPauseTakts*2U) // Общая длительность бита в тактах
|
||||
#define bitTime (bitTakts*carrierPeriod) // Общая длительность бита
|
||||
const auto viewValue = bitTime;
|
||||
#define tolerance 300U
|
||||
|
||||
|
||||
class IR_FOX {
|
||||
private:
|
||||
bool isSending = false;
|
||||
@ -132,12 +132,12 @@ protected:
|
||||
}
|
||||
return crc;
|
||||
}
|
||||
// public:
|
||||
/// @brief Вывод массива байт в строковом формате
|
||||
/// @param d Указатель на массив
|
||||
/// @param s Размер массива
|
||||
/// @param mode Формат вывода DEC, BIN
|
||||
/// @return Готовая для вывода строка
|
||||
// public:
|
||||
/// @brief Вывод массива байт в строковом формате
|
||||
/// @param d Указатель на массив
|
||||
/// @param s Размер массива
|
||||
/// @param mode Формат вывода DEC, BIN
|
||||
/// @return Готовая для вывода строка
|
||||
String printBytes(uint8_t* d, uint8_t s, uint8_t mode = 10) {
|
||||
String str = "";
|
||||
uint8_t control = bitPerByte;
|
||||
|
Loading…
x
Reference in New Issue
Block a user