diff --git a/applications/unit_tests/subghz/subghz_test.c b/applications/unit_tests/subghz/subghz_test.c index 3a65429a..879deae8 100644 --- a/applications/unit_tests/subghz/subghz_test.c +++ b/applications/unit_tests/subghz/subghz_test.c @@ -13,7 +13,7 @@ #define CAME_ATOMO_DIR_NAME "/ext/subghz/assets/came_atomo" #define NICE_FLOR_S_DIR_NAME "/ext/subghz/assets/nice_flor_s" #define TEST_RANDOM_DIR_NAME "/ext/unit_tests/subghz/test_random_raw.sub" -#define TEST_RANDOM_COUNT_PARSE 116 +#define TEST_RANDOM_COUNT_PARSE 113 #define TEST_TIMEOUT 10000 static SubGhzEnvironment* environment_handler; diff --git a/lib/subghz/protocols/holtek.c b/lib/subghz/protocols/holtek.c index dcb51de4..174d023e 100644 --- a/lib/subghz/protocols/holtek.c +++ b/lib/subghz/protocols/holtek.c @@ -19,8 +19,8 @@ #define HOLTEK_HEADER 0x5000000000 static const SubGhzBlockConst subghz_protocol_holtek_const = { - .te_short = 500, - .te_long = 1000, + .te_short = 430, + .te_long = 870, .te_delta = 100, .min_count_bit_for_found = 40, }; @@ -347,8 +347,8 @@ void subghz_protocol_decoder_holtek_get_string(void* context, string_t output) { "Sn:0x%05lX BTN:%X ", instance->generic.protocol_name, instance->generic.data_count_bit, - (uint32_t)((instance->generic.data >> 32) & 0xFFFFFF), - (uint32_t)(instance->generic.data & 0xFFFFFF), + (uint32_t)((instance->generic.data >> 32) & 0xFFFFFFFF), + (uint32_t)(instance->generic.data & 0xFFFFFFFF), instance->generic.serial, instance->generic.btn >> 4); diff --git a/lib/subghz/protocols/princeton.c b/lib/subghz/protocols/princeton.c index 7579a3ca..046484c7 100644 --- a/lib/subghz/protocols/princeton.c +++ b/lib/subghz/protocols/princeton.c @@ -245,7 +245,8 @@ void subghz_protocol_decoder_princeton_feed(void* context, bool level, uint32_t instance->decoder.parser_step = PrincetonDecoderStepSaveDuration; if(instance->decoder.decode_count_bit == subghz_protocol_princeton_const.min_count_bit_for_found) { - if(instance->last_data == instance->decoder.decode_data) { + if((instance->last_data == instance->decoder.decode_data) && + instance->last_data) { instance->te /= (instance->decoder.decode_count_bit * 4 + 1); instance->generic.data = instance->decoder.decode_data;