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:
Skorpionm 2022-10-28 15:16:54 +04:00 committed by GitHub
parent f11df49468
commit 26f852839a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 35 deletions

View File

@ -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"

View File

@ -151,10 +151,11 @@ 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)) {
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 ==
@ -168,22 +169,14 @@ void ws_protocol_decoder_acurite_606tx_feed(void* context, bool level, uint32_t
}
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)) {
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)) {
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 {
@ -192,6 +185,9 @@ void ws_protocol_decoder_acurite_606tx_feed(void* context, bool level, uint32_t
} else {
instance->decoder.parser_step = Acurite_606TXDecoderStepReset;
}
} else {
instance->decoder.parser_step = Acurite_606TXDecoderStepReset;
}
break;
}
}