WS: fix Acurite-606TX protocol (#1938)
* WS: fix acurite_606tx protocol * WS: update version * WeatherStation: remove break from invalid place Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
parent
f11df49468
commit
26f852839a
@ -3,7 +3,7 @@
|
||||
#include <furi.h>
|
||||
#include <furi_hal.h>
|
||||
|
||||
#define WS_VERSION_APP "0.3"
|
||||
#define WS_VERSION_APP "0.3.1"
|
||||
#define WS_DEVELOPED "SkorP"
|
||||
#define WS_GITHUB "https://github.com/flipperdevices/flipperzero-firmware"
|
||||
|
||||
|
@ -151,41 +151,37 @@ void ws_protocol_decoder_acurite_606tx_feed(void* context, bool level, uint32_t
|
||||
|
||||
case Acurite_606TXDecoderStepCheckDuration:
|
||||
if(!level) {
|
||||
if((DURATION_DIFF(instance->decoder.te_last, ws_protocol_acurite_606tx_const.te_short) <
|
||||
ws_protocol_acurite_606tx_const.te_delta) &&
|
||||
(DURATION_DIFF(duration, ws_protocol_acurite_606tx_const.te_short) <
|
||||
ws_protocol_acurite_606tx_const.te_delta)) {
|
||||
//Found syncPostfix
|
||||
instance->decoder.parser_step = Acurite_606TXDecoderStepReset;
|
||||
if((instance->decoder.decode_count_bit ==
|
||||
ws_protocol_acurite_606tx_const.min_count_bit_for_found) &&
|
||||
ws_protocol_acurite_606tx_check(instance)) {
|
||||
instance->generic.data = instance->decoder.decode_data;
|
||||
instance->generic.data_count_bit = instance->decoder.decode_count_bit;
|
||||
ws_protocol_acurite_606tx_remote_controller(&instance->generic);
|
||||
if(instance->base.callback)
|
||||
instance->base.callback(&instance->base, instance->base.context);
|
||||
if(DURATION_DIFF(instance->decoder.te_last, ws_protocol_acurite_606tx_const.te_short) <
|
||||
ws_protocol_acurite_606tx_const.te_delta) {
|
||||
if((DURATION_DIFF(duration, ws_protocol_acurite_606tx_const.te_short) <
|
||||
ws_protocol_acurite_606tx_const.te_delta) ||
|
||||
(duration > ws_protocol_acurite_606tx_const.te_long * 3)) {
|
||||
//Found syncPostfix
|
||||
instance->decoder.parser_step = Acurite_606TXDecoderStepReset;
|
||||
if((instance->decoder.decode_count_bit ==
|
||||
ws_protocol_acurite_606tx_const.min_count_bit_for_found) &&
|
||||
ws_protocol_acurite_606tx_check(instance)) {
|
||||
instance->generic.data = instance->decoder.decode_data;
|
||||
instance->generic.data_count_bit = instance->decoder.decode_count_bit;
|
||||
ws_protocol_acurite_606tx_remote_controller(&instance->generic);
|
||||
if(instance->base.callback)
|
||||
instance->base.callback(&instance->base, instance->base.context);
|
||||
}
|
||||
instance->decoder.decode_data = 0;
|
||||
instance->decoder.decode_count_bit = 0;
|
||||
} else if(
|
||||
DURATION_DIFF(duration, ws_protocol_acurite_606tx_const.te_long) <
|
||||
ws_protocol_acurite_606tx_const.te_delta * 2) {
|
||||
subghz_protocol_blocks_add_bit(&instance->decoder, 0);
|
||||
instance->decoder.parser_step = Acurite_606TXDecoderStepSaveDuration;
|
||||
} else if(
|
||||
DURATION_DIFF(duration, ws_protocol_acurite_606tx_const.te_long * 2) <
|
||||
ws_protocol_acurite_606tx_const.te_delta * 4) {
|
||||
subghz_protocol_blocks_add_bit(&instance->decoder, 1);
|
||||
instance->decoder.parser_step = Acurite_606TXDecoderStepSaveDuration;
|
||||
} else {
|
||||
instance->decoder.parser_step = Acurite_606TXDecoderStepReset;
|
||||
}
|
||||
instance->decoder.decode_data = 0;
|
||||
instance->decoder.decode_count_bit = 0;
|
||||
|
||||
break;
|
||||
} else if(
|
||||
(DURATION_DIFF(
|
||||
instance->decoder.te_last, ws_protocol_acurite_606tx_const.te_short) <
|
||||
ws_protocol_acurite_606tx_const.te_delta) &&
|
||||
(DURATION_DIFF(duration, ws_protocol_acurite_606tx_const.te_long) <
|
||||
ws_protocol_acurite_606tx_const.te_delta * 2)) {
|
||||
subghz_protocol_blocks_add_bit(&instance->decoder, 0);
|
||||
instance->decoder.parser_step = Acurite_606TXDecoderStepSaveDuration;
|
||||
} else if(
|
||||
(DURATION_DIFF(
|
||||
instance->decoder.te_last, ws_protocol_acurite_606tx_const.te_short) <
|
||||
ws_protocol_acurite_606tx_const.te_delta) &&
|
||||
(DURATION_DIFF(duration, ws_protocol_acurite_606tx_const.te_long * 2) <
|
||||
ws_protocol_acurite_606tx_const.te_delta * 4)) {
|
||||
subghz_protocol_blocks_add_bit(&instance->decoder, 1);
|
||||
instance->decoder.parser_step = Acurite_606TXDecoderStepSaveDuration;
|
||||
} else {
|
||||
instance->decoder.parser_step = Acurite_606TXDecoderStepReset;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user