diff --git a/lib/subghz/protocols/keeloq.c b/lib/subghz/protocols/keeloq.c index 10993d706..46c86fee4 100644 --- a/lib/subghz/protocols/keeloq.c +++ b/lib/subghz/protocols/keeloq.c @@ -137,7 +137,11 @@ void subghz_protocol_encoder_keeloq_free(void* context) { * @param btn Button number, 4 bit */ static bool subghz_protocol_keeloq_gen_data(SubGhzProtocolEncoderKeeloq* instance, uint8_t btn) { - instance->generic.cnt++; + if(instance->generic.cnt < 0xFFFF) { + instance->generic.cnt++; + } else if(instance->generic.cnt >= 0xFFFF) { + instance->generic.cnt = 0; + } uint32_t fix = btn << 28 | instance->generic.serial; uint32_t decrypt = btn << 28 | (instance->generic.serial & 0x3FF) diff --git a/lib/subghz/protocols/star_line.c b/lib/subghz/protocols/star_line.c index 182aa2136..3066c6e2b 100644 --- a/lib/subghz/protocols/star_line.c +++ b/lib/subghz/protocols/star_line.c @@ -138,7 +138,11 @@ void subghz_protocol_encoder_star_line_free(void* context) { */ static bool subghz_protocol_star_line_gen_data(SubGhzProtocolEncoderStarLine* instance, uint8_t btn) { - instance->generic.cnt++; + if(instance->generic.cnt < 0xFFFF) { + instance->generic.cnt++; + } else if(instance->generic.cnt >= 0xFFFF) { + instance->generic.cnt = 0; + } uint32_t fix = btn << 24 | instance->generic.serial; uint32_t decrypt = btn << 24 | (instance->generic.serial & 0xFF) << 16 | instance->generic.cnt; uint32_t hop = 0;