Skip to content

Commit 01b402b

Browse files
Astrrraskotopes
andauthored
[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: あく <[email protected]>
1 parent 380ec2a commit 01b402b

23 files changed

+76
-59
lines changed

applications/main/ibutton/ibutton_cli.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ void ibutton_cli_write(Cli* cli, FuriString* args) {
156156
}
157157

158158
if(!(ibutton_protocols_get_features(protocols, ibutton_key_get_protocol_id(key)) &
159-
iButtonProtocolFeatureWriteBlank)) {
159+
iButtonProtocolFeatureWriteId)) {
160160
ibutton_cli_print_usage();
161161
break;
162162
}
@@ -165,7 +165,7 @@ void ibutton_cli_write(Cli* cli, FuriString* args) {
165165
ibutton_cli_print_key(protocols, key);
166166
printf("Press Ctrl+C to abort\r\n");
167167

168-
ibutton_worker_write_blank_start(worker, key);
168+
ibutton_worker_write_id_start(worker, key);
169169
while(true) {
170170
uint32_t flags = furi_event_flag_wait(
171171
write_context.event, EVENT_FLAG_IBUTTON_COMPLETE, FuriFlagWaitAny, 100);

applications/main/ibutton/ibutton_i.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
typedef enum {
3838
iButtonWriteModeInvalid,
39-
iButtonWriteModeBlank,
39+
iButtonWriteModeId,
4040
iButtonWriteModeCopy,
4141
} iButtonWriteMode;
4242

applications/main/ibutton/scenes/ibutton_scene_read_key_menu.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ typedef enum {
55
SubmenuIndexSave,
66
SubmenuIndexEmulate,
77
SubmenuIndexViewData,
8-
SubmenuIndexWriteBlank,
8+
SubmenuIndexWriteId,
99
SubmenuIndexWriteCopy,
1010
} SubmenuIndex;
1111

@@ -30,11 +30,11 @@ void ibutton_scene_read_key_menu_on_enter(void* context) {
3030
ibutton_scene_read_key_menu_submenu_callback,
3131
ibutton);
3232

33-
if(features & iButtonProtocolFeatureWriteBlank) {
33+
if(features & iButtonProtocolFeatureWriteId) {
3434
submenu_add_item(
3535
submenu,
3636
"Write ID",
37-
SubmenuIndexWriteBlank,
37+
SubmenuIndexWriteId,
3838
ibutton_scene_read_key_menu_submenu_callback,
3939
ibutton);
4040
}
@@ -78,8 +78,8 @@ bool ibutton_scene_read_key_menu_on_event(void* context, SceneManagerEvent event
7878
dolphin_deed(DolphinDeedIbuttonEmulate);
7979
} else if(event.event == SubmenuIndexViewData) {
8080
scene_manager_next_scene(scene_manager, iButtonSceneViewData);
81-
} else if(event.event == SubmenuIndexWriteBlank) {
82-
ibutton->write_mode = iButtonWriteModeBlank;
81+
} else if(event.event == SubmenuIndexWriteId) {
82+
ibutton->write_mode = iButtonWriteModeId;
8383
scene_manager_next_scene(scene_manager, iButtonSceneWrite);
8484
} else if(event.event == SubmenuIndexWriteCopy) {
8585
ibutton->write_mode = iButtonWriteModeCopy;

applications/main/ibutton/scenes/ibutton_scene_saved_key_menu.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
enum SubmenuIndex {
55
SubmenuIndexEmulate,
6-
SubmenuIndexWriteBlank,
6+
SubmenuIndexWriteId,
77
SubmenuIndexWriteCopy,
88
SubmenuIndexEdit,
99
SubmenuIndexRename,
@@ -20,9 +20,9 @@ void ibutton_scene_saved_key_menu_on_enter(void* context) {
2020

2121
submenu_add_item(submenu, "Emulate", SubmenuIndexEmulate, ibutton_submenu_callback, ibutton);
2222

23-
if(features & iButtonProtocolFeatureWriteBlank) {
23+
if(features & iButtonProtocolFeatureWriteId) {
2424
submenu_add_item(
25-
submenu, "Write ID", SubmenuIndexWriteBlank, ibutton_submenu_callback, ibutton);
25+
submenu, "Write ID", SubmenuIndexWriteId, ibutton_submenu_callback, ibutton);
2626
}
2727

2828
if(features & iButtonProtocolFeatureWriteCopy) {
@@ -55,8 +55,8 @@ bool ibutton_scene_saved_key_menu_on_event(void* context, SceneManagerEvent even
5555
if(event.event == SubmenuIndexEmulate) {
5656
scene_manager_next_scene(scene_manager, iButtonSceneEmulate);
5757
dolphin_deed(DolphinDeedIbuttonEmulate);
58-
} else if(event.event == SubmenuIndexWriteBlank) {
59-
ibutton->write_mode = iButtonWriteModeBlank;
58+
} else if(event.event == SubmenuIndexWriteId) {
59+
ibutton->write_mode = iButtonWriteModeId;
6060
scene_manager_next_scene(scene_manager, iButtonSceneWrite);
6161
} else if(event.event == SubmenuIndexWriteCopy) {
6262
ibutton->write_mode = iButtonWriteModeCopy;

applications/main/ibutton/scenes/ibutton_scene_write.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ void ibutton_scene_write_on_enter(void* context) {
5252

5353
ibutton_worker_write_set_callback(worker, ibutton_scene_write_callback, ibutton);
5454

55-
if(ibutton->write_mode == iButtonWriteModeBlank) {
55+
if(ibutton->write_mode == iButtonWriteModeId) {
5656
furi_string_set(tmp, "Writing ID");
57-
ibutton_worker_write_blank_start(worker, key);
57+
ibutton_worker_write_id_start(worker, key);
5858

5959
} else if(ibutton->write_mode == iButtonWriteModeCopy) {
6060
furi_string_set(tmp, "Full Writing");

lib/ibutton/ibutton_protocols.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,15 +160,15 @@ bool ibutton_protocols_read(iButtonProtocols* protocols, iButtonKey* key) {
160160
return id != iButtonProtocolIdInvalid;
161161
}
162162

163-
bool ibutton_protocols_write_blank(iButtonProtocols* protocols, iButtonKey* key) {
163+
bool ibutton_protocols_write_id(iButtonProtocols* protocols, iButtonKey* key) {
164164
furi_check(protocols);
165165
furi_check(key);
166166

167167
const iButtonProtocolId id = ibutton_key_get_protocol_id(key);
168168
iButtonProtocolData* data = ibutton_key_get_protocol_data(key);
169169

170170
GET_PROTOCOL_GROUP(id);
171-
return GROUP_BASE->write_blank(GROUP_DATA, data, PROTOCOL_ID);
171+
return GROUP_BASE->write_id(GROUP_DATA, data, PROTOCOL_ID);
172172
}
173173

174174
bool ibutton_protocols_write_copy(iButtonProtocols* protocols, iButtonKey* key) {

lib/ibutton/ibutton_protocols.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ bool ibutton_protocols_read(iButtonProtocols* protocols, iButtonKey* key);
8888
* @param [in] key pointer to the key to be written
8989
* @return true on success, false on failure
9090
*/
91-
bool ibutton_protocols_write_blank(iButtonProtocols* protocols, iButtonKey* key);
91+
bool ibutton_protocols_write_id(iButtonProtocols* protocols, iButtonKey* key);
9292

9393
/**
9494
* Write the key to another one of the same type

lib/ibutton/ibutton_worker.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ typedef enum {
77
iButtonMessageEnd,
88
iButtonMessageStop,
99
iButtonMessageRead,
10-
iButtonMessageWriteBlank,
10+
iButtonMessageWriteId,
1111
iButtonMessageWriteCopy,
1212
iButtonMessageEmulate,
1313
iButtonMessageNotifyEmulate,
@@ -78,11 +78,11 @@ void ibutton_worker_read_start(iButtonWorker* worker, iButtonKey* key) {
7878
furi_message_queue_put(worker->messages, &message, FuriWaitForever) == FuriStatusOk);
7979
}
8080

81-
void ibutton_worker_write_blank_start(iButtonWorker* worker, iButtonKey* key) {
81+
void ibutton_worker_write_id_start(iButtonWorker* worker, iButtonKey* key) {
8282
furi_check(worker);
8383
furi_check(key);
8484

85-
iButtonMessage message = {.type = iButtonMessageWriteBlank, .data.key = key};
85+
iButtonMessage message = {.type = iButtonMessageWriteId, .data.key = key};
8686

8787
furi_check(
8888
furi_message_queue_put(worker->messages, &message, FuriWaitForever) == FuriStatusOk);
@@ -185,9 +185,9 @@ static int32_t ibutton_worker_thread(void* thread_context) {
185185
ibutton_worker_set_key_p(worker, message.data.key);
186186
ibutton_worker_switch_mode(worker, iButtonWorkerModeRead);
187187
break;
188-
case iButtonMessageWriteBlank:
188+
case iButtonMessageWriteId:
189189
ibutton_worker_set_key_p(worker, message.data.key);
190-
ibutton_worker_switch_mode(worker, iButtonWorkerModeWriteBlank);
190+
ibutton_worker_switch_mode(worker, iButtonWorkerModeWriteId);
191191
break;
192192
case iButtonMessageWriteCopy:
193193
ibutton_worker_set_key_p(worker, message.data.key);

lib/ibutton/ibutton_worker.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ void ibutton_worker_write_set_callback(
8484
* @param worker
8585
* @param key
8686
*/
87-
void ibutton_worker_write_blank_start(iButtonWorker* worker, iButtonKey* key);
87+
void ibutton_worker_write_id_start(iButtonWorker* worker, iButtonKey* key);
8888

8989
/**
9090
* Start write copy mode

lib/ibutton/ibutton_worker_i.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ typedef struct {
2525
typedef enum {
2626
iButtonWorkerModeIdle,
2727
iButtonWorkerModeRead,
28-
iButtonWorkerModeWriteBlank,
28+
iButtonWorkerModeWriteId,
2929
iButtonWorkerModeWriteCopy,
3030
iButtonWorkerModeEmulate,
3131
} iButtonWorkerMode;

0 commit comments

Comments
 (0)