1
mirror of https://github.com/DarkFlippers/unleashed-firmware.git synced 2025-12-12 04:34:43 +04:00

Fix FAAC counter fix seed being not removed from RAM

This commit is contained in:
MX
2023-08-17 17:33:21 +03:00
parent e1c83692c3
commit 3584e0da46
3 changed files with 12 additions and 1 deletions

View File

@@ -88,7 +88,7 @@ bool subghz_txrx_gen_faac_slh_protocol(
uint32_t frequency,
uint32_t serial,
uint8_t btn,
uint16_t cnt,
uint32_t cnt,
uint32_t seed,
const char* manufacture_name);

View File

@@ -110,6 +110,11 @@ bool subghz_scene_set_seed_on_event(void* context, SceneManagerEvent event) {
if(generated_protocol) {
subghz_file_name_clear(subghz);
// Reset Seed, Fix, Cnt in secure data on generated_protocol true
memset(subghz->secure_data->seed, 0, sizeof(subghz->secure_data->seed));
memset(subghz->secure_data->cnt, 0, sizeof(subghz->secure_data->cnt));
memset(subghz->secure_data->fix, 0, sizeof(subghz->secure_data->fix));
scene_manager_set_scene_state(
subghz->scene_manager, SubGhzSceneSetType, SubGhzCustomEventManagerSet);
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSaveName);

View File

@@ -112,6 +112,9 @@ void subghz_protocol_encoder_faac_slh_free(void* context) {
static bool subghz_protocol_faac_slh_gen_data(SubGhzProtocolEncoderFaacSLH* instance) {
if(instance->generic.seed != 0x0) {
instance->generic.cnt += furi_hal_subghz_get_rolling_counter_mult();
} else {
// Do not generate new data, send data from buffer
return true;
}
uint32_t fix = instance->generic.serial << 4 | instance->generic.btn;
uint32_t hop = 0;
@@ -434,6 +437,9 @@ SubGhzProtocolStatus subghz_protocol_decoder_faac_slh_serialize(
furi_assert(context);
SubGhzProtocolDecoderFaacSLH* instance = context;
// Reset seed leftover from previous decoded signal
instance->generic.seed = 0x0;
SubGhzProtocolStatus res =
subghz_block_generic_serialize(&instance->generic, flipper_format, preset);