Partial MFC support while checking target presence on PN532/PN531

Goal is to implement "ping" on MFC the same as PN533 does. This patch implements MFC re-selection, but do not take care about authentication; this means this will have side effect while you are authenticated on a MFC block.
This commit is contained in:
Romuald Conty 2014-01-29 11:36:12 +01:00
parent 1a3acdadc4
commit 7b5ab23452
2 changed files with 11 additions and 1 deletions

View file

@ -148,6 +148,12 @@ main(int argc, const char *argv[])
} else { } else {
printf("No target found.\n"); printf("No target found.\n");
} }
printf("Waiting for card removing...");
while (0 == (res = nfc_initiator_target_is_present(pnd, NULL))) {}
nfc_perror(pnd, "nfc_initiator_target_is_present");
printf("done.\n");
nfc_close(pnd); nfc_close(pnd);
nfc_exit(context); nfc_exit(context);
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);

View file

@ -1800,7 +1800,11 @@ pn53x_initiator_target_is_present(struct nfc_device *pnd, const nfc_target *pnt)
//TODO MFC Mini (atqa0004/sak09) fails on PN533 //TODO MFC Mini (atqa0004/sak09) fails on PN533
ret = pn53x_Diagnose06(pnd); ret = pn53x_Diagnose06(pnd);
} else { } else {
ret = NFC_EDEVNOTSUPP; if((ret = pn53x_initiator_select_passive_target_ext(pnd, CHIP_DATA(pnd)->current_target->nm, CHIP_DATA(pnd)->current_target->nti.nai.abtUid, CHIP_DATA(pnd)->current_target->nti.nai.szUidLen, NULL, 50)) == 1) {
ret = NFC_SUCCESS;
} else if ((ret == 0) || (ret == NFC_ETIMEOUT)) {
ret = NFC_ETGRELEASED;
}
} }
} else { } else {
// unknown // unknown