[FL-3827] iButton ID writing (#3734)

* Function naming corrections and enabled writing ID for all dallas blanks
* Enable ID writing for ds1971 and ds1996
* Sync API Symbols

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
Astra
2024-08-01 01:59:41 +09:00
committed by GitHub
parent 380ec2ac46
commit 01b402ba2b
23 changed files with 76 additions and 59 deletions

View File

@@ -5,7 +5,7 @@ typedef enum {
SubmenuIndexSave,
SubmenuIndexEmulate,
SubmenuIndexViewData,
SubmenuIndexWriteBlank,
SubmenuIndexWriteId,
SubmenuIndexWriteCopy,
} SubmenuIndex;
@@ -30,11 +30,11 @@ void ibutton_scene_read_key_menu_on_enter(void* context) {
ibutton_scene_read_key_menu_submenu_callback,
ibutton);
if(features & iButtonProtocolFeatureWriteBlank) {
if(features & iButtonProtocolFeatureWriteId) {
submenu_add_item(
submenu,
"Write ID",
SubmenuIndexWriteBlank,
SubmenuIndexWriteId,
ibutton_scene_read_key_menu_submenu_callback,
ibutton);
}
@@ -78,8 +78,8 @@ bool ibutton_scene_read_key_menu_on_event(void* context, SceneManagerEvent event
dolphin_deed(DolphinDeedIbuttonEmulate);
} else if(event.event == SubmenuIndexViewData) {
scene_manager_next_scene(scene_manager, iButtonSceneViewData);
} else if(event.event == SubmenuIndexWriteBlank) {
ibutton->write_mode = iButtonWriteModeBlank;
} else if(event.event == SubmenuIndexWriteId) {
ibutton->write_mode = iButtonWriteModeId;
scene_manager_next_scene(scene_manager, iButtonSceneWrite);
} else if(event.event == SubmenuIndexWriteCopy) {
ibutton->write_mode = iButtonWriteModeCopy;

View File

@@ -3,7 +3,7 @@
enum SubmenuIndex {
SubmenuIndexEmulate,
SubmenuIndexWriteBlank,
SubmenuIndexWriteId,
SubmenuIndexWriteCopy,
SubmenuIndexEdit,
SubmenuIndexRename,
@@ -20,9 +20,9 @@ void ibutton_scene_saved_key_menu_on_enter(void* context) {
submenu_add_item(submenu, "Emulate", SubmenuIndexEmulate, ibutton_submenu_callback, ibutton);
if(features & iButtonProtocolFeatureWriteBlank) {
if(features & iButtonProtocolFeatureWriteId) {
submenu_add_item(
submenu, "Write ID", SubmenuIndexWriteBlank, ibutton_submenu_callback, ibutton);
submenu, "Write ID", SubmenuIndexWriteId, ibutton_submenu_callback, ibutton);
}
if(features & iButtonProtocolFeatureWriteCopy) {
@@ -55,8 +55,8 @@ bool ibutton_scene_saved_key_menu_on_event(void* context, SceneManagerEvent even
if(event.event == SubmenuIndexEmulate) {
scene_manager_next_scene(scene_manager, iButtonSceneEmulate);
dolphin_deed(DolphinDeedIbuttonEmulate);
} else if(event.event == SubmenuIndexWriteBlank) {
ibutton->write_mode = iButtonWriteModeBlank;
} else if(event.event == SubmenuIndexWriteId) {
ibutton->write_mode = iButtonWriteModeId;
scene_manager_next_scene(scene_manager, iButtonSceneWrite);
} else if(event.event == SubmenuIndexWriteCopy) {
ibutton->write_mode = iButtonWriteModeCopy;

View File

@@ -52,9 +52,9 @@ void ibutton_scene_write_on_enter(void* context) {
ibutton_worker_write_set_callback(worker, ibutton_scene_write_callback, ibutton);
if(ibutton->write_mode == iButtonWriteModeBlank) {
if(ibutton->write_mode == iButtonWriteModeId) {
furi_string_set(tmp, "Writing ID");
ibutton_worker_write_blank_start(worker, key);
ibutton_worker_write_id_start(worker, key);
} else if(ibutton->write_mode == iButtonWriteModeCopy) {
furi_string_set(tmp, "Full Writing");