From d15be5cbb2edfbd699ba34a23cc61651e7d9d767 Mon Sep 17 00:00:00 2001 From: Eric Betts Date: Tue, 21 Nov 2023 16:52:54 -0800 Subject: [PATCH] working on error handling --- seader_worker.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/seader_worker.c b/seader_worker.c index f92721e..bf6f944 100644 --- a/seader_worker.c +++ b/seader_worker.c @@ -231,9 +231,9 @@ NfcCommand seader_worker_poller_callback_iso14443_4a(NfcGenericEvent event, void } else if(seader_worker->stage == SeaderPollerEventTypeComplete) { ret = NfcCommandStop; } - } else { - // add failure callback if failure type - FURI_LOG_D(TAG, "14a event type %x", iso14443_4a_event->type); + } else if(iso14443_4a_event->type == Iso14443_4aPollerEventTypeError) { + ret = NfcCommandStop; + view_dispatcher_send_custom_event(seader->view_dispatcher, SeaderCustomEventWorkerExit); } return ret; @@ -249,7 +249,9 @@ NfcCommand seader_worker_poller_callback_picopass(PicopassPollerEvent event, voi PicopassPoller* instance = seader->picopass_poller; SeaderPollerContainer spc = {.picopass_poller = instance}; - if(event.type == PicopassPollerEventTypeSuccess) { + if(event.type == PicopassPollerEventTypeCardDetected) { + seader_worker->stage = SeaderPollerEventTypeCardDetect; + } else if(event.type == PicopassPollerEventTypeSuccess) { if(seader_worker->stage == SeaderPollerEventTypeCardDetect) { uint8_t* csn = picopass_poller_get_csn(instance); seader_worker_card_detect(seader, 0, NULL, csn, sizeof(PicopassSerialNum), NULL, 0); @@ -262,6 +264,7 @@ NfcCommand seader_worker_poller_callback_picopass(PicopassPollerEvent event, voi } } else if(event.type == PicopassPollerEventTypeFail) { ret = NfcCommandStop; + view_dispatcher_send_custom_event(seader->view_dispatcher, SeaderCustomEventWorkerExit); } else { FURI_LOG_D(TAG, "picopass event type %x", event.type); }