From 0da2f58c7528b504ee54e380b755ea5f0801b4bb Mon Sep 17 00:00:00 2001 From: cbdev Date: Tue, 20 Jun 2023 20:58:01 +0200 Subject: Proper select looping in reader_yhy --- reader_yhy.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'reader_yhy.c') diff --git a/reader_yhy.c b/reader_yhy.c index 9cb386f..4c332ac 100644 --- a/reader_yhy.c +++ b/reader_yhy.c @@ -49,19 +49,22 @@ int scan(){ uint16_t atqa = 0; uint8_t sak = 0; - if(!yhy_sync_request(reader_fd, 1, &atqa)){ - return 0; - } + for(yhy_sync_request(reader_fd, 1, &atqa); atqa; yhy_sync_request(reader_fd, 0, &atqa)){ + card.uid_length = yhy_sync_anticoll(reader_fd, card.uid, sizeof(card.uid)); + if(!card.uid_length){ + return 0; + } - card.uid_length = yhy_sync_anticoll(reader_fd, card.uid, sizeof(card.uid)); - if(!card.uid_length){ - return 0; - } + yhy_sync_select(reader_fd, card.uid, card.uid_length, &sak); + //TODO parse ATQA and SAK to detect tag type - yhy_sync_select(reader_fd, card.uid, card.uid_length, &sak); - yhy_sync_hlta(reader_fd); + if(reader_tag_present(card) == TAG_READ_REQUESTED){ + //TODO read card data + } + + yhy_sync_hlta(reader_fd); + } - reader_tag_present(card); return 0; } -- cgit v1.2.3