Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/subghz/protocols/nero_sketch.c')
-rw-r--r--lib/subghz/protocols/nero_sketch.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/lib/subghz/protocols/nero_sketch.c b/lib/subghz/protocols/nero_sketch.c
index 461bbcea..0b87ec11 100644
--- a/lib/subghz/protocols/nero_sketch.c
+++ b/lib/subghz/protocols/nero_sketch.c
@@ -157,7 +157,11 @@ bool subghz_protocol_encoder_nero_sketch_deserialize(void* context, FlipperForma
FURI_LOG_E(TAG, "Deserialize error");
break;
}
-
+ if(instance->generic.data_count_bit !=
+ subghz_protocol_nero_sketch_const.min_count_bit_for_found) {
+ FURI_LOG_E(TAG, "Wrong number of bits in key");
+ break;
+ }
//optional parameter parameter
flipper_format_read_uint32(
flipper_format, "Repeat", (uint32_t*)&instance->encoder.repeat, 1);
@@ -271,7 +275,7 @@ void subghz_protocol_decoder_nero_sketch_feed(void* context, bool level, uint32_
subghz_protocol_nero_sketch_const.te_delta * 2)) {
//Found stop bit
instance->decoder.parser_step = NeroSketchDecoderStepReset;
- if(instance->decoder.decode_count_bit >=
+ if(instance->decoder.decode_count_bit ==
subghz_protocol_nero_sketch_const.min_count_bit_for_found) {
instance->generic.data = instance->decoder.decode_data;
instance->generic.data_count_bit = instance->decoder.decode_count_bit;
@@ -336,7 +340,19 @@ bool subghz_protocol_decoder_nero_sketch_serialize(
bool subghz_protocol_decoder_nero_sketch_deserialize(void* context, FlipperFormat* flipper_format) {
furi_assert(context);
SubGhzProtocolDecoderNeroSketch* instance = context;
- return subghz_block_generic_deserialize(&instance->generic, flipper_format);
+ bool ret = false;
+ do {
+ if(!subghz_block_generic_deserialize(&instance->generic, flipper_format)) {
+ break;
+ }
+ if(instance->generic.data_count_bit !=
+ subghz_protocol_nero_sketch_const.min_count_bit_for_found) {
+ FURI_LOG_E(TAG, "Wrong number of bits in key");
+ break;
+ }
+ ret = true;
+ } while(false);
+ return ret;
}
void subghz_protocol_decoder_nero_sketch_get_string(void* context, string_t output) {