From 4e1a9a65ba62975c44ef4980b3862f892eafccf9 Mon Sep 17 00:00:00 2001 From: cthuwu Date: Sat, 21 Mar 2026 05:39:49 -0400 Subject: [PATCH] Fix Kia V1 "Wrong" CRC fixes "Wrong" CRC issue with cnt_high vales between 1-5 --- protocols/kia_v1.c | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/protocols/kia_v1.c b/protocols/kia_v1.c index 96d8845..d5a930f 100644 --- a/protocols/kia_v1.c +++ b/protocols/kia_v1.c @@ -102,16 +102,8 @@ static void kia_v1_check_remote_controller(SubGhzProtocolDecoderKiaV1* instance) char_data[4] = instance->generic.btn; char_data[5] = instance->generic.cnt & 0xFF; - uint8_t crc; - if(cnt_high == 0) { - uint8_t offset = (instance->generic.cnt >= 0x098) ? instance->generic.btn : 1; - crc = kia_v1_crc4(char_data, 6, offset); - } else if(cnt_high >= 0x6) { - char_data[6] = cnt_high; - crc = kia_v1_crc4(char_data, 7, 1); - } else { - crc = kia_v1_crc4(char_data, 6, 1); - } + char_data[6] = cnt_high; + uint8_t crc = kia_v1_crc4(char_data, 7, 1); instance->crc = cnt_high << 4 | crc; instance->crc_check = (crc == (instance->generic.data & 0xF)); @@ -170,16 +162,8 @@ static void kia_protocol_encoder_v1_get_upload(SubGhzProtocolEncoderKiaV1* insta char_data[4] = instance->generic.btn; char_data[5] = instance->generic.cnt & 0xFF; - uint8_t crc; - if(cnt_high == 0) { - uint8_t offset = (instance->generic.cnt >= 0x098) ? instance->generic.btn : 1; - crc = kia_v1_crc4(char_data, 6, offset); - } else if(cnt_high >= 0x6) { - char_data[6] = cnt_high; - crc = kia_v1_crc4(char_data, 7, 1); - } else { - crc = kia_v1_crc4(char_data, 6, 1); - } + char_data[6] = cnt_high; + uint8_t crc = kia_v1_crc4(char_data, 7, 1); instance->generic.data = (uint64_t)instance->generic.serial << 24 | instance->generic.btn << 16 | (instance->generic.cnt & 0xFF) << 8 |