From 16a626db223c89c15853a393a1192d9de26ec957 Mon Sep 17 00:00:00 2001 From: DashyFox Date: Mon, 22 Apr 2024 12:52:41 +0300 Subject: [PATCH] BRUTEFORCE_CHECK --- IR_DecoderRaw.cpp | 4 ++-- IR_config.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/IR_DecoderRaw.cpp b/IR_DecoderRaw.cpp index 7221c5c..2f2e581 100644 --- a/IR_DecoderRaw.cpp +++ b/IR_DecoderRaw.cpp @@ -540,14 +540,14 @@ void IR_DecoderRaw::writeToBuffer(bool bit) #ifdef BRUTEFORCE_CHECK if (!isAvailable) // Исправление первого бита // Очень большая затычка... - for (size_t i = 0; i < min(packSize - crcBytes*2, dataByteSizeMax); ++i) + for (size_t i = 0; i < min(uint16_t(packSize - crcBytes*2U), uint16_t(dataByteSizeMax)); ++i) { for (int j = 0; j < 8; ++j) { // инвертируем бит dataBuffer[i] ^= 1 << j; - isAvailable = crcCheck(packSize - crcBytes, crcValue); + isAvailable = crcCheck(min(uint16_t(packSize - crcBytes), uint16_t(dataByteSizeMax - 1U)), crcValue); // обратно инвертируем бит в исходное состояние if (isAvailable) diff --git a/IR_config.h b/IR_config.h index 3935d62..0edbf51 100644 --- a/IR_config.h +++ b/IR_config.h @@ -101,7 +101,7 @@ customByte - контрольная сумма принятых данных п /////////////////////////////////////////////////////////////////////////////////////*/ typedef uint16_t crc_t; -// #define BRUTEFORCE_CHECK // Перепроверяет пакет на 1 битные ошибки //TODO: зависает +#define BRUTEFORCE_CHECK // Перепроверяет пакет на 1 битные ошибки //TODO: зависает #define bytePerPack 16 // колличество байтов в пакете #ifndef freeFrec #define freeFrec false