summaryrefslogtreecommitdiff
path: root/src/rfid_layer2_iso14443a.c
diff options
context:
space:
mode:
authorlaforge <laforge@e0336214-984f-0b4b-a45f-81c69e1f0ede>2008-01-27 02:15:48 +0000
committerlaforge <laforge@e0336214-984f-0b4b-a45f-81c69e1f0ede>2008-01-27 02:15:48 +0000
commitc203de04bd740e324b06615b98932ac9fa734ed2 (patch)
tree42801098aab2fdd4e2a63af47035c0d817b60ed6 /src/rfid_layer2_iso14443a.c
parent6b2db45060b26cc4e42ca6130f236596f9a02c82 (diff)
* improve scanning support:
** first try REQA/HLTA/REQA/HLTA until no more tags found ** then power off the field and start from the beginning again * add proper RF field on/off switching support to all readers * reduce timer to actual value, don't multiply by 10 * detect collisions during transceive_sf (ATQA) * make UID length depend on cascade level, not ATQA git-svn-id: https://svn.gnumonks.org/trunk/librfid@2056 e0336214-984f-0b4b-a45f-81c69e1f0ede
Diffstat (limited to 'src/rfid_layer2_iso14443a.c')
-rw-r--r--src/rfid_layer2_iso14443a.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/rfid_layer2_iso14443a.c b/src/rfid_layer2_iso14443a.c
index 9bdd25a..148960d 100644
--- a/src/rfid_layer2_iso14443a.c
+++ b/src/rfid_layer2_iso14443a.c
@@ -237,13 +237,10 @@ cascade:
}
}
- h->level = ISO14443A_LEVEL_NONE;
- h->state = ISO14443A_STATE_SELECTED;
-
{
- if (uid_size == 1)
+ if (h->level == ISO14443A_LEVEL_CL1)
handle->uid_len = 4;
- else if (uid_size == 2)
+ else if (h->level == ISO14443A_LEVEL_CL2)
handle->uid_len = 7;
else
handle->uid_len = 10;
@@ -251,6 +248,9 @@ cascade:
DEBUGP("UID %s\n", rfid_hexdump(handle->uid, handle->uid_len));
}
+ h->level = ISO14443A_LEVEL_NONE;
+ h->state = ISO14443A_STATE_SELECTED;
+
if (sak[0] & 0x20) {
DEBUGP("we have a T=CL compliant PICC\n");
handle->proto_supported = 1 << RFID_PROTOCOL_TCL;
personal git repositories of Harald Welte. Your mileage may vary