summaryrefslogtreecommitdiff
path: root/reader_yhy.c
diff options
context:
space:
mode:
Diffstat (limited to 'reader_yhy.c')
-rw-r--r--reader_yhy.c23
1 files changed, 13 insertions, 10 deletions
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;
}