From 02410cc78c105b5ea69b4b04d9a01a2e7a83bad2 Mon Sep 17 00:00:00 2001 From: DashyFox Date: Fri, 26 Jan 2024 11:23:48 +0300 Subject: [PATCH] cleanup --- IR_Decoder.cpp | 2 +- IR_Decoder.h | 9 +++++---- IR_config.h | 20 ++++++++++---------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/IR_Decoder.cpp b/IR_Decoder.cpp index 0a31fa4..cb9cdfd 100644 --- a/IR_Decoder.cpp +++ b/IR_Decoder.cpp @@ -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; diff --git a/IR_Decoder.h b/IR_Decoder.h index da05118..36e6cb8 100644 --- a/IR_Decoder.h +++ b/IR_Decoder.h @@ -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); diff --git a/IR_config.h b/IR_config.h index 4614402..aa020f4 100644 --- a/IR_config.h +++ b/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;