From edffa21598688214b1f7e4cec312e6b85beb3d90 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Wed, 6 Jul 2022 14:00:19 +0200 Subject: [PATCH] fix cid 395490, and 14a simulation --- armsrc/iso14443a.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/armsrc/iso14443a.c b/armsrc/iso14443a.c index 6d982a3b9..4af72bfba 100644 --- a/armsrc/iso14443a.c +++ b/armsrc/iso14443a.c @@ -927,9 +927,13 @@ bool GetIso14443aCommandFromReader(uint8_t *received, uint8_t *par, int *len) { (void)b; uint8_t flip = 0; - uint16_t checker = 0; + uint16_t checker = 4000; for (;;) { + WDT_HIT(); + + // ever 3 * 4000, check if we got any data from client + // takes long time, usually messes with simualtion if (flip == 3) { if (data_available()) return false; @@ -937,14 +941,14 @@ bool GetIso14443aCommandFromReader(uint8_t *received, uint8_t *par, int *len) { flip = 0; } - if (checker >= 3000) { + // button press, takes a bit time, might mess with simualtion + if (checker-- == 0) { if (BUTTON_PRESS()) return false; flip++; - checker = 0; + checker = 4000; } - ++checker; if (AT91C_BASE_SSC->SSC_SR & (AT91C_SSC_RXRDY)) { b = (uint8_t)AT91C_BASE_SSC->SSC_RHR; @@ -2461,7 +2465,7 @@ static int GetATQA(uint8_t *resp, uint8_t *resp_par, bool use_ecp, bool use_mags uint8_t deselect_cmd[] = {0xc2, 0xe0, 0xb4}; ReaderTransmit(deselect_cmd, sizeof(deselect_cmd), NULL); // Read response if present - ReaderReceive(resp, resp_par); + (void) ReaderReceive(resp, resp_par); } uint32_t save_iso14a_timeout = iso14a_get_timeout();