Reset SAM on read error

This commit is contained in:
Eric Betts
2025-08-18 18:07:55 -07:00
parent 5735a3314d
commit 2a9d9b084a
3 changed files with 12 additions and 0 deletions
+5
View File
@@ -51,6 +51,11 @@ void seader_scene_read_card_success_on_enter(void* context) {
}
} else {
furi_string_set(type_str, "Read error");
SeaderWorker* seader_worker = seader->worker;
SeaderUartBridge* seader_uart = seader_worker->uart;
seader_t_1_reset();
seader_ccid_check_for_sam(seader_uart);
}
widget_add_button_element(
+6
View File
@@ -31,6 +31,12 @@ uint8_t seader_next_cpcb() {
return cPCB;
}
void seader_t_1_reset() {
NAD = 0x00;
dPCB = 0x40;
cPCB = 0x00;
}
void seader_t_1_set_IFSD(Seader* seader) {
SeaderWorker* seader_worker = seader->worker;
SeaderUartBridge* seader_uart = seader_worker->uart;
+1
View File
@@ -7,3 +7,4 @@ typedef struct CCID_Message CCID_Message;
void seader_send_t1(SeaderUartBridge* seader_uart, uint8_t* apdu, size_t len);
bool seader_recv_t1(Seader* seader, CCID_Message* message);
void seader_t_1_set_IFSD(Seader* seader);
void seader_t_1_reset();