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

Merge pull request #403 from gid9798/clear-code-in-add-manual

Clear code in "add manual" scene
This commit is contained in:
MX
2023-03-29 04:06:51 +03:00
committed by GitHub

View File

@@ -60,6 +60,43 @@ bool subghz_scene_set_type_submenu_gen_data_protocol(
return res; return res;
} }
bool subghz_scene_set_type_submenu_gen_data_keeloq(
void* context,
const char* preset_name,
uint32_t frequency,
uint32_t serial,
uint8_t btn,
uint16_t cnt,
const char* manufacture_name) {
SubGhz* subghz = context;
bool res = false;
subghz->txrx->transmitter =
subghz_transmitter_alloc_init(subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME);
subghz_preset_init(subghz, preset_name, frequency, NULL, 0);
if(subghz->txrx->transmitter &&
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
serial,
btn,
cnt,
manufacture_name,
subghz->txrx->preset)) {
flipper_format_write_string_cstr(subghz->txrx->fff_data, "Manufacture", manufacture_name);
res = true;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!res) {
furi_string_set(subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
}
return res;
}
void subghz_scene_set_type_submenu_callback(void* context, uint32_t index) { void subghz_scene_set_type_submenu_callback(void* context, uint32_t index) {
SubGhz* subghz = context; SubGhz* subghz = context;
view_dispatcher_send_custom_event(subghz->view_dispatcher, index); view_dispatcher_send_custom_event(subghz->view_dispatcher, index);
@@ -445,310 +482,105 @@ bool subghz_scene_set_type_on_event(void* context, SceneManagerEvent event) {
} }
break; break;
case SubmenuIndexBeninca433: case SubmenuIndexBeninca433:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz,
subghz_preset_init(subghz, "AM650", 433920000, NULL, 0); "AM650",
if(subghz->txrx->transmitter) { 433920000,
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
(key & 0x000FFF00) | 0x00800080, (key & 0x000FFF00) | 0x00800080,
0x1, 0x1,
0x0005, 0x0005,
"Beninca", "Beninca")) {
subghz->txrx->preset);
flipper_format_write_string_cstr(subghz->txrx->fff_data, "Manufacture", "Beninca");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexBeninca868: case SubmenuIndexBeninca868:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz,
subghz_preset_init(subghz, "AM650", 868350000, NULL, 0); "AM650",
if(subghz->txrx->transmitter) { 868350000,
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
(key & 0x000FFF00) | 0x00800080, (key & 0x000FFF00) | 0x00800080,
0x1, 0x1,
0x0005, 0x0005,
"Beninca", "Beninca")) {
subghz->txrx->preset);
flipper_format_write_string_cstr(subghz->txrx->fff_data, "Manufacture", "Beninca");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexElmesElectronic: case SubmenuIndexElmesElectronic:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz,
subghz_preset_init(subghz, "AM650", 433920000, NULL, 0); "AM650",
if(subghz->txrx->transmitter) { 433920000,
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
(key & 0x00FFFFFF) | 0x02000000, (key & 0x00FFFFFF) | 0x02000000,
0x2, 0x2,
0x0003, 0x0003,
"Elmes_Poland", "Elmes_Poland")) {
subghz->txrx->preset);
flipper_format_write_string_cstr(
subghz->txrx->fff_data, "Manufacture", "Elmes_Poland");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexANMotorsAT4: case SubmenuIndexANMotorsAT4:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz,
subghz_preset_init(subghz, "AM650", 433920000, NULL, 0); "AM650",
if(subghz->txrx->transmitter) { 433920000,
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
(key & 0x00FFFFFF) | 0x04000000, (key & 0x00FFFFFF) | 0x04000000,
0x2, 0x2,
0x0021, 0x0021,
"AN-Motors", "AN-Motors")) {
subghz->txrx->preset);
flipper_format_write_string_cstr(
subghz->txrx->fff_data, "Manufacture", "AN-Motors");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexAprimatic: case SubmenuIndexAprimatic:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz,
subghz_preset_init(subghz, "AM650", 433920000, NULL, 0); "AM650",
if(subghz->txrx->transmitter) { 433920000,
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
(key & 0x000FFFFF) | 0x00600000, (key & 0x000FFFFF) | 0x00600000,
0x4, 0x4,
0x0003, 0x0003,
"Aprimatic", "Aprimatic")) {
subghz->txrx->preset);
flipper_format_write_string_cstr(
subghz->txrx->fff_data, "Manufacture", "Aprimatic");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexGibidi433: case SubmenuIndexGibidi433:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz, "AM650", 433920000, key & 0x00FFFFFF, 0x2, 0x0003, "Gibidi")) {
subghz_preset_init(subghz, "AM650", 433920000, NULL, 0);
if(subghz->txrx->transmitter) {
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
key & 0x00FFFFFF,
0x2,
0x0003,
"Gibidi",
subghz->txrx->preset);
flipper_format_write_string_cstr(subghz->txrx->fff_data, "Manufacture", "Gibidi");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexGSN: case SubmenuIndexGSN:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz, "AM650", 433920000, key & 0x0FFFFFFF, 0x2, 0x0003, "GSN")) {
subghz_preset_init(subghz, "AM650", 433920000, NULL, 0);
if(subghz->txrx->transmitter) {
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
key & 0x0FFFFFFF,
0x2,
0x0003,
"GSN",
subghz->txrx->preset);
flipper_format_write_string_cstr(subghz->txrx->fff_data, "Manufacture", "GSN");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexIronLogic: case SubmenuIndexIronLogic:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz, "AM650", 433920000, key & 0x00FFFFF0, 0x4, 0x0005, "IronLogic")) {
subghz_preset_init(subghz, "AM650", 433920000, NULL, 0);
if(subghz->txrx->transmitter) {
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
key & 0x00FFFFF0,
0x4,
0x0005,
"IronLogic",
subghz->txrx->preset);
flipper_format_write_string_cstr(
subghz->txrx->fff_data, "Manufacture", "IronLogic");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexSommer_FM_434: case SubmenuIndexSommer_FM_434:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz, "FM476", 434420000, key & 0x0FFFFFFF, 0x4, 0x0003, "Sommer(fsk476)")) {
subghz_preset_init(subghz, "FM476", 434420000, NULL, 0);
if(subghz->txrx->transmitter) {
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
key & 0x0FFFFFFF,
0x4,
0x0003,
"Sommer(fsk476)",
subghz->txrx->preset);
flipper_format_write_string_cstr(
subghz->txrx->fff_data, "Manufacture", "Sommer(fsk476)");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexSommer_FM_868: case SubmenuIndexSommer_FM_868:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz, "FM476", 868800000, key & 0x0FFFFFFF, 0x4, 0x0003, "Sommer(fsk476)")) {
subghz_preset_init(subghz, "FM476", 868800000, NULL, 0);
if(subghz->txrx->transmitter) {
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
key & 0x0FFFFFFF,
0x4,
0x0003,
"Sommer(fsk476)",
subghz->txrx->preset);
flipper_format_write_string_cstr(
subghz->txrx->fff_data, "Manufacture", "Sommer(fsk476)");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexDTMNeo433: case SubmenuIndexDTMNeo433:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz, "AM650", 433920000, key & 0x000FFFFF, 0x2, 0x0005, "DTM_Neo")) {
subghz_preset_init(subghz, "AM650", 433920000, NULL, 0);
if(subghz->txrx->transmitter) {
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
key & 0x000FFFFF,
0x2,
0x0005,
"DTM_Neo",
subghz->txrx->preset);
flipper_format_write_string_cstr(subghz->txrx->fff_data, "Manufacture", "DTM_Neo");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexCAMESpace: case SubmenuIndexCAMESpace:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz, "AM650", 433920000, key & 0x00FFFFFF, 0x2, 0x0003, "Came_Space")) {
subghz_preset_init(subghz, "AM650", 433920000, NULL, 0);
if(subghz->txrx->transmitter) {
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
key & 0x00FFFFFF,
0x2,
0x0003,
"Came_Space",
subghz->txrx->preset);
flipper_format_write_string_cstr(
subghz->txrx->fff_data, "Manufacture", "Came_Space");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexBFTMitto: case SubmenuIndexBFTMitto:
@@ -834,53 +666,15 @@ bool subghz_scene_set_type_on_event(void* context, SceneManagerEvent event) {
} }
break; break;
case SubmenuIndexDoorHan_433_92: case SubmenuIndexDoorHan_433_92:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz, "AM650", 433920000, key & 0x0FFFFFFF, 0x2, 0x0003, "DoorHan")) {
subghz_preset_init(subghz, "AM650", 433920000, NULL, 0);
if(subghz->txrx->transmitter) {
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
key & 0x0FFFFFFF,
0x2,
0x0003,
"DoorHan",
subghz->txrx->preset);
flipper_format_write_string_cstr(subghz->txrx->fff_data, "Manufacture", "DoorHan");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexDoorHan_315_00: case SubmenuIndexDoorHan_315_00:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz, "AM650", 315000000, key & 0x0FFFFFFF, 0x2, 0x0003, "DoorHan")) {
subghz_preset_init(subghz, "AM650", 315000000, NULL, 0);
if(subghz->txrx->transmitter) {
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
key & 0x0FFFFFFF,
0x2,
0x0003,
"DoorHan",
subghz->txrx->preset);
flipper_format_write_string_cstr(subghz->txrx->fff_data, "Manufacture", "DoorHan");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexNiceFlorS_433_92: case SubmenuIndexNiceFlorS_433_92:
@@ -932,29 +726,9 @@ bool subghz_scene_set_type_on_event(void* context, SceneManagerEvent event) {
} }
break; break;
case SubmenuIndexNiceSmilo_433_92: case SubmenuIndexNiceSmilo_433_92:
subghz->txrx->transmitter = subghz_transmitter_alloc_init( if(subghz_scene_set_type_submenu_gen_data_keeloq(
subghz->txrx->environment, SUBGHZ_PROTOCOL_KEELOQ_NAME); subghz, "AM650", 433920000, key & 0x00FFFFFF, 0x2, 0x0003, "NICE_Smilo")) {
subghz_preset_init(subghz, "AM650", 433920000, NULL, 0);
if(subghz->txrx->transmitter) {
subghz_protocol_keeloq_create_data(
subghz_transmitter_get_protocol_instance(subghz->txrx->transmitter),
subghz->txrx->fff_data,
key & 0x00FFFFFF,
0x2,
0x0003,
"NICE_Smilo",
subghz->txrx->preset);
flipper_format_write_string_cstr(
subghz->txrx->fff_data, "Manufacture", "NICE_Smilo");
generated_protocol = true; generated_protocol = true;
} else {
generated_protocol = false;
}
subghz_transmitter_free(subghz->txrx->transmitter);
if(!generated_protocol) {
furi_string_set(
subghz->error_str, "Function requires\nan SD card with\nfresh databases.");
scene_manager_next_scene(subghz->scene_manager, SubGhzSceneShowError);
} }
break; break;
case SubmenuIndexLiftMaster_315_00: case SubmenuIndexLiftMaster_315_00: