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

move ofex out of range and fix counter editor

scene fixes by @Dmitry422
This commit is contained in:
MX
2025-12-06 22:59:48 +03:00
parent 59ac0f211c
commit c08cb33a76
13 changed files with 128 additions and 48 deletions

View File

@@ -277,7 +277,7 @@ static bool subghz_protocol_alutech_at_4n_gen_data(
if(alutech_at4n_counter_mode == 0) {
// Check for OFEX (overflow experimental) mode
if(furi_hal_subghz_get_rolling_counter_mult() != 0xFFFE) {
if(furi_hal_subghz_get_rolling_counter_mult() != -0x7FFFFFFF) {
if(instance->generic.cnt < 0xFFFF) {
if((instance->generic.cnt + furi_hal_subghz_get_rolling_counter_mult()) > 0xFFFF) {
instance->generic.cnt = 0;
@@ -293,7 +293,7 @@ static bool subghz_protocol_alutech_at_4n_gen_data(
if((instance->generic.cnt + 0x1) > 0xFFFF) {
instance->generic.cnt = 0;
} else if(instance->generic.cnt >= 0x1 && instance->generic.cnt != 0xFFFE) {
instance->generic.cnt = furi_hal_subghz_get_rolling_counter_mult();
instance->generic.cnt = 0xFFFE;
} else {
instance->generic.cnt++;
}

View File

@@ -189,7 +189,7 @@ static void subghz_protocol_encoder_came_atomo_get_upload(
if(came_atomo_counter_mode == 0) {
// Check for OFEX (overflow experimental) mode
if(furi_hal_subghz_get_rolling_counter_mult() != 0xFFFE) {
if(furi_hal_subghz_get_rolling_counter_mult() != -0x7FFFFFFF) {
if(instance->generic.cnt < 0xFFFF) {
if((instance->generic.cnt + furi_hal_subghz_get_rolling_counter_mult()) > 0xFFFF) {
instance->generic.cnt = 0;
@@ -205,7 +205,7 @@ static void subghz_protocol_encoder_came_atomo_get_upload(
if((instance->generic.cnt + 0x1) > 0xFFFF) {
instance->generic.cnt = 0;
} else if(instance->generic.cnt >= 0x1 && instance->generic.cnt != 0xFFFE) {
instance->generic.cnt = furi_hal_subghz_get_rolling_counter_mult();
instance->generic.cnt = 0xFFFE;
} else {
instance->generic.cnt++;
}

View File

@@ -140,7 +140,7 @@ static bool subghz_protocol_faac_slh_gen_data(SubGhzProtocolEncoderFaacSLH* inst
data_prg[0] = 0x00;
if(allow_zero_seed || (instance->generic.seed != 0x0)) {
if(!(furi_hal_subghz_get_rolling_counter_mult() >= 0xFFFE)) {
if(furi_hal_subghz_get_rolling_counter_mult() != -0x7FFFFFFF) {
if(instance->generic.cnt < 0xFFFFF) {
if((instance->generic.cnt + furi_hal_subghz_get_rolling_counter_mult()) >
0xFFFFF) {
@@ -158,7 +158,7 @@ static bool subghz_protocol_faac_slh_gen_data(SubGhzProtocolEncoderFaacSLH* inst
}
if(temp_counter_backup != 0x0) {
if(!(furi_hal_subghz_get_rolling_counter_mult() >= 0xFFFE)) {
if(furi_hal_subghz_get_rolling_counter_mult() != -0x7FFFFFFF) {
if(temp_counter_backup < 0xFFFFF) {
if((temp_counter_backup + furi_hal_subghz_get_rolling_counter_mult()) >
0xFFFFF) {

View File

@@ -146,7 +146,7 @@ static void subghz_protocol_encoder_hay21_get_upload(SubGhzProtocolEncoderHay21*
// Counter increment
// Check for OFEX (overflow experimental) mode
if(furi_hal_subghz_get_rolling_counter_mult() != 0xFFFE) {
if(furi_hal_subghz_get_rolling_counter_mult() != -0x7FFFFFFF) {
if(instance->generic.cnt < 0xF) {
if((instance->generic.cnt + furi_hal_subghz_get_rolling_counter_mult()) > 0xF) {
instance->generic.cnt = 0;

View File

@@ -186,7 +186,7 @@ static bool subghz_protocol_keeloq_gen_data(
if(keeloq_counter_mode == 0) {
// Check for OFEX (overflow experimental) mode
if(furi_hal_subghz_get_rolling_counter_mult() != 0xFFFE) {
if(furi_hal_subghz_get_rolling_counter_mult() != -0x7FFFFFFF) {
// If counter is 0xFFFF we will reset it to 0
if(instance->generic.cnt < 0xFFFF) {
// Increase counter with value set in global settings (mult)
@@ -205,7 +205,7 @@ static bool subghz_protocol_keeloq_gen_data(
if((instance->generic.cnt + 0x1) > 0xFFFF) {
instance->generic.cnt = 0;
} else if(instance->generic.cnt >= 0x1 && instance->generic.cnt != 0xFFFE) {
instance->generic.cnt = furi_hal_subghz_get_rolling_counter_mult();
instance->generic.cnt = 0xFFFE;
} else {
instance->generic.cnt++;
}

View File

@@ -156,7 +156,7 @@ static bool subghz_protocol_kinggates_stylo_4k_gen_data(
instance->generic.cnt = decrypt & 0xFFFF;
// Check for OFEX (overflow experimental) mode
if(furi_hal_subghz_get_rolling_counter_mult() != 0xFFFE) {
if(furi_hal_subghz_get_rolling_counter_mult() != -0x7FFFFFFF) {
if(instance->generic.cnt < 0xFFFF) {
if((instance->generic.cnt + furi_hal_subghz_get_rolling_counter_mult()) > 0xFFFF) {
instance->generic.cnt = 0;
@@ -172,7 +172,7 @@ static bool subghz_protocol_kinggates_stylo_4k_gen_data(
if((instance->generic.cnt + 0x1) > 0xFFFF) {
instance->generic.cnt = 0;
} else if(instance->generic.cnt >= 0x1 && instance->generic.cnt != 0xFFFE) {
instance->generic.cnt = furi_hal_subghz_get_rolling_counter_mult();
instance->generic.cnt = 0xFFFE;
} else {
instance->generic.cnt++;
}

View File

@@ -154,7 +154,7 @@ static void subghz_protocol_encoder_nice_flor_s_get_upload(
}
if(nice_flors_counter_mode == 0) {
// Check for OFEX (overflow experimental) mode
if(furi_hal_subghz_get_rolling_counter_mult() != 0xFFFE) {
if(furi_hal_subghz_get_rolling_counter_mult() != -0x7FFFFFFF) {
if(instance->generic.cnt < 0xFFFF) {
if((instance->generic.cnt + furi_hal_subghz_get_rolling_counter_mult()) > 0xFFFF) {
instance->generic.cnt = 0;
@@ -170,7 +170,7 @@ static void subghz_protocol_encoder_nice_flor_s_get_upload(
if((instance->generic.cnt + 0x1) > 0xFFFF) {
instance->generic.cnt = 0;
} else if(instance->generic.cnt >= 0x1 && instance->generic.cnt != 0xFFFE) {
instance->generic.cnt = furi_hal_subghz_get_rolling_counter_mult();
instance->generic.cnt = 0xFFFE;
} else {
instance->generic.cnt++;
}

View File

@@ -253,7 +253,7 @@ static bool
// Reconstruction of the data
// Check for OFEX (overflow experimental) mode
if(furi_hal_subghz_get_rolling_counter_mult() != 0xFFFE) {
if(furi_hal_subghz_get_rolling_counter_mult() != -0x7FFFFFFF) {
if(instance->generic.cnt < 0xFFFF) {
if((instance->generic.cnt + furi_hal_subghz_get_rolling_counter_mult()) > 0xFFFF) {
instance->generic.cnt = 0;
@@ -269,7 +269,7 @@ static bool
if((instance->generic.cnt + 0x1) > 0xFFFF) {
instance->generic.cnt = 0;
} else if(instance->generic.cnt >= 0x1 && instance->generic.cnt != 0xFFFE) {
instance->generic.cnt = furi_hal_subghz_get_rolling_counter_mult();
instance->generic.cnt = 0xFFFE;
} else {
instance->generic.cnt++;
}
@@ -599,7 +599,7 @@ void subghz_protocol_decoder_phoenix_v2_get_string(void* context, FuriString* ou
"V2 Phoenix %dbit\r\n"
"Key:%05lX%08lX\r\n"
"Sn:0x%07lX \r\n"
"Cnt:0x%04lX\r\n"
"Cnt:%04lX\r\n"
"Btn:%X\r\n",
instance->generic.data_count_bit,
(uint32_t)(instance->generic.data >> 32) & 0xFFFFFFFF,

View File

@@ -131,7 +131,7 @@ static bool
instance->generic.serial = data & 0xFFFFFF;
// Check for OFEX (overflow experimental) mode
if(furi_hal_subghz_get_rolling_counter_mult() != 0xFFFE) {
if(furi_hal_subghz_get_rolling_counter_mult() != -0x7FFFFFFF) {
if(instance->generic.cnt < 0xFFFF) {
if((instance->generic.cnt + furi_hal_subghz_get_rolling_counter_mult()) > 0xFFFF) {
instance->generic.cnt = 0;
@@ -147,7 +147,7 @@ static bool
if((instance->generic.cnt + 0x1) > 0xFFFF) {
instance->generic.cnt = 0;
} else if(instance->generic.cnt >= 0x1 && instance->generic.cnt != 0xFFFE) {
instance->generic.cnt = furi_hal_subghz_get_rolling_counter_mult();
instance->generic.cnt = 0xFFFE;
} else {
instance->generic.cnt++;
}

View File

@@ -125,7 +125,7 @@ static bool subghz_protocol_somfy_telis_gen_data(
btn = subghz_protocol_somfy_telis_get_btn_code();
// Check for OFEX (overflow experimental) mode
if(furi_hal_subghz_get_rolling_counter_mult() != 0xFFFE) {
if(furi_hal_subghz_get_rolling_counter_mult() != -0x7FFFFFFF) {
if(instance->generic.cnt < 0xFFFF) {
if((instance->generic.cnt + furi_hal_subghz_get_rolling_counter_mult()) > 0xFFFF) {
instance->generic.cnt = 0;
@@ -141,7 +141,7 @@ static bool subghz_protocol_somfy_telis_gen_data(
if((instance->generic.cnt + 0x1) > 0xFFFF) {
instance->generic.cnt = 0;
} else if(instance->generic.cnt >= 0x1 && instance->generic.cnt != 0xFFFE) {
instance->generic.cnt = furi_hal_subghz_get_rolling_counter_mult();
instance->generic.cnt = 0xFFFE;
} else {
instance->generic.cnt++;
}

View File

@@ -130,7 +130,7 @@ void subghz_protocol_encoder_star_line_free(void* context) {
static bool
subghz_protocol_star_line_gen_data(SubGhzProtocolEncoderStarLine* instance, uint8_t btn) {
// Check for OFEX (overflow experimental) mode
if(furi_hal_subghz_get_rolling_counter_mult() != 0xFFFE) {
if(furi_hal_subghz_get_rolling_counter_mult() != -0x7FFFFFFF) {
if(instance->generic.cnt < 0xFFFF) {
if((instance->generic.cnt + furi_hal_subghz_get_rolling_counter_mult()) > 0xFFFF) {
instance->generic.cnt = 0;
@@ -146,7 +146,7 @@ static bool
if((instance->generic.cnt + 0x1) > 0xFFFF) {
instance->generic.cnt = 0;
} else if(instance->generic.cnt >= 0x1 && instance->generic.cnt != 0xFFFE) {
instance->generic.cnt = furi_hal_subghz_get_rolling_counter_mult();
instance->generic.cnt = 0xFFFE;
} else {
instance->generic.cnt++;
}