kinggates stylo 4k add manually and button switch

This commit is contained in:
MX
2026-01-05 21:10:31 +03:00
parent 8d23b84ed1
commit 529d72f7dd
13 changed files with 282 additions and 25 deletions

View File

@@ -36,6 +36,10 @@ void subghz_scene_set_button_on_enter(void* context) {
byte_ptr = &subghz->gen_info->somfy_telis.btn;
byte_count = sizeof(subghz->gen_info->somfy_telis.btn);
break;
case GenKingGatesStylo4k:
byte_ptr = &subghz->gen_info->kinggates_stylo_4k.btn;
byte_count = sizeof(subghz->gen_info->kinggates_stylo_4k.btn);
break;
case GenNiceFlorS:
byte_ptr = &subghz->gen_info->nice_flor_s.btn;
byte_count = sizeof(subghz->gen_info->nice_flor_s.btn);
@@ -82,6 +86,7 @@ bool subghz_scene_set_button_on_event(void* context, SceneManagerEvent event) {
case GenKeeloqBFT:
case GenAlutechAt4n:
case GenSomfyTelis:
case GenKingGatesStylo4k:
case GenNiceFlorS:
case GenSecPlus2:
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSetCounter);

View File

@@ -42,6 +42,10 @@ void subghz_scene_set_counter_on_enter(void* context) {
byte_ptr = (uint8_t*)&subghz->gen_info->somfy_telis.cnt;
byte_count = sizeof(subghz->gen_info->somfy_telis.cnt);
break;
case GenKingGatesStylo4k:
byte_ptr = (uint8_t*)&subghz->gen_info->kinggates_stylo_4k.cnt;
byte_count = sizeof(subghz->gen_info->kinggates_stylo_4k.cnt);
break;
case GenNiceFlorS:
byte_ptr = (uint8_t*)&subghz->gen_info->nice_flor_s.cnt;
byte_count = sizeof(subghz->gen_info->nice_flor_s.cnt);
@@ -113,6 +117,10 @@ bool subghz_scene_set_counter_on_event(void* context, SceneManagerEvent event) {
case GenSomfyTelis:
subghz->gen_info->somfy_telis.cnt = __bswap16(subghz->gen_info->somfy_telis.cnt);
break;
case GenKingGatesStylo4k:
subghz->gen_info->kinggates_stylo_4k.cnt =
__bswap16(subghz->gen_info->kinggates_stylo_4k.cnt);
break;
case GenNiceFlorS:
subghz->gen_info->nice_flor_s.cnt = __bswap16(subghz->gen_info->nice_flor_s.cnt);
break;
@@ -171,6 +179,15 @@ bool subghz_scene_set_counter_on_event(void* context, SceneManagerEvent event) {
subghz->gen_info->somfy_telis.btn,
subghz->gen_info->somfy_telis.cnt);
break;
case GenKingGatesStylo4k:
generated_protocol = subghz_txrx_gen_kinggates_stylo_4k_protocol(
subghz->txrx,
subghz->gen_info->mod,
subghz->gen_info->freq,
subghz->gen_info->kinggates_stylo_4k.serial,
subghz->gen_info->kinggates_stylo_4k.btn,
subghz->gen_info->kinggates_stylo_4k.cnt);
break;
case GenNiceFlorS:
generated_protocol = subghz_txrx_gen_nice_flor_s_protocol(
subghz->txrx,

View File

@@ -30,6 +30,7 @@ void subghz_scene_set_seed_on_enter(void* context) {
case GenKeeloq:
case GenAlutechAt4n:
case GenSomfyTelis:
case GenKingGatesStylo4k:
case GenNiceFlorS:
case GenSecPlus2:
case GenPhoenixV2:
@@ -89,6 +90,7 @@ bool subghz_scene_set_seed_on_event(void* context, SceneManagerEvent event) {
case GenKeeloq:
case GenAlutechAt4n:
case GenSomfyTelis:
case GenKingGatesStylo4k:
case GenNiceFlorS:
case GenSecPlus2:
case GenPhoenixV2:

View File

@@ -42,6 +42,10 @@ void subghz_scene_set_serial_on_enter(void* context) {
byte_ptr = (uint8_t*)&subghz->gen_info->somfy_telis.serial;
byte_count = sizeof(subghz->gen_info->somfy_telis.serial);
break;
case GenKingGatesStylo4k:
byte_ptr = (uint8_t*)&subghz->gen_info->kinggates_stylo_4k.serial;
byte_count = sizeof(subghz->gen_info->kinggates_stylo_4k.serial);
break;
case GenNiceFlorS:
byte_ptr = (uint8_t*)&subghz->gen_info->nice_flor_s.serial;
byte_count = sizeof(subghz->gen_info->nice_flor_s.serial);
@@ -110,6 +114,10 @@ bool subghz_scene_set_serial_on_event(void* context, SceneManagerEvent event) {
subghz->gen_info->somfy_telis.serial =
__bswap32(subghz->gen_info->somfy_telis.serial);
break;
case GenKingGatesStylo4k:
subghz->gen_info->kinggates_stylo_4k.serial =
__bswap32(subghz->gen_info->kinggates_stylo_4k.serial);
break;
case GenNiceFlorS:
subghz->gen_info->nice_flor_s.serial =
__bswap32(subghz->gen_info->nice_flor_s.serial);
@@ -136,6 +144,7 @@ bool subghz_scene_set_serial_on_event(void* context, SceneManagerEvent event) {
case GenKeeloqBFT:
case GenAlutechAt4n:
case GenSomfyTelis:
case GenKingGatesStylo4k:
case GenNiceFlorS:
case GenSecPlus2:
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSetButton);

View File

@@ -20,6 +20,7 @@ static const char* submenu_names[SetTypeMAX] = {
[SetTypeAlutechAT4N] = "Alutech AT4N 433MHz",
[SetTypeRoger_433] = "Roger 433MHz",
[SetTypePhoenix_V2_433] = "V2 Phoenix 433MHz",
[SetTypeKingGatesStylo4k] = "KingGates Stylo4 433MHz",
[SetTypeHCS101_433_92] = "KL: HCS101 433MHz",
[SetTypeDoorHan_315_00] = "KL: DoorHan 315MHz",
[SetTypeDoorHan_433_92] = "KL: DoorHan 433MHz",
@@ -187,6 +188,15 @@ bool subghz_scene_set_type_generate_protocol_from_infos(SubGhz* subghz) {
gen_info.somfy_telis.btn,
gen_info.somfy_telis.cnt);
break;
case GenKingGatesStylo4k:
generated_protocol = subghz_txrx_gen_kinggates_stylo_4k_protocol(
subghz->txrx,
gen_info.mod,
gen_info.freq,
gen_info.kinggates_stylo_4k.serial,
gen_info.kinggates_stylo_4k.btn,
gen_info.kinggates_stylo_4k.cnt);
break;
case GenNiceFlorS:
generated_protocol = subghz_txrx_gen_nice_flor_s_protocol(
subghz->txrx,
@@ -266,6 +276,7 @@ bool subghz_scene_set_type_on_event(void* context, SceneManagerEvent event) {
case GenKeeloqBFT: // Serial (u32), Button (u8), Counter (u16), Seed (u32)
case GenAlutechAt4n: // Serial (u32), Button (u8), Counter (u16)
case GenSomfyTelis: // Serial (u32), Button (u8), Counter (u16)
case GenKingGatesStylo4k: // Serial (u32), Button (u8), Counter (u16)
case GenNiceFlorS: // Serial (u32), Button (u8), Counter (u16)
case GenSecPlus2: // Serial (u32), Button (u8), Counter (u32)
case GenPhoenixV2: // Serial (u32), Counter (u16)