Merge pull request #739 from gentilkiwi/master

Fix `nfc_initiator_select_passive_target` target count on PN53x when not using `InListPassiveTarget`
This commit is contained in:
Philippe Teuwen 2024-07-29 13:05:54 +02:00 committed by GitHub
commit 0bfcd9cdd6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 2 deletions

View file

@ -205,7 +205,8 @@ int main(int argc, char *argv[])
{ {
printf("Reader : %s - via %s\n ...wait for card...\n", nfc_device_get_name(pnd), nfc_device_get_connstring(pnd)); printf("Reader : %s - via %s\n ...wait for card...\n", nfc_device_get_name(pnd), nfc_device_get_connstring(pnd));
if (nfc_initiator_select_passive_target(pnd, nm, NULL, 0, &nt) > 0) res = nfc_initiator_select_passive_target(pnd, nm, NULL, 0, &nt);
if (res > 0)
{ {
stcurrent = get_info(&nt, true); stcurrent = get_info(&nt, true);
if(stcurrent) if(stcurrent)
@ -234,6 +235,7 @@ int main(int argc, char *argv[])
} }
} }
} }
else printf("ERROR - nfc_initiator_select_passive_target: %i\n", res);
} }
else printf("ERROR - nfc_initiator_init: %i\n", res); else printf("ERROR - nfc_initiator_init: %i\n", res);

View file

@ -1267,6 +1267,7 @@ pn53x_initiator_select_passive_target_ext(struct nfc_device *pnd,
szTargetsData = (size_t)res; szTargetsData = (size_t)res;
} }
found = true; found = true;
res = 1; // TargetCount to 1 as only one target is supported here
break; break;
} while (pnd->bInfiniteSelect); } while (pnd->bInfiniteSelect);
if (! found) if (! found)
@ -1347,6 +1348,7 @@ pn53x_initiator_select_passive_target_ext(struct nfc_device *pnd,
return res; return res;
} }
found = true; found = true;
res = 1; // TargetCount to 1 as only one target is supported here
break; break;
} while (pnd->bInfiniteSelect); } while (pnd->bInfiniteSelect);
if (! found) { if (! found) {
@ -1377,6 +1379,7 @@ pn53x_initiator_select_passive_target_ext(struct nfc_device *pnd,
return res; return res;
} }
} }
res = abtTargetsData[0]; // TargetCount to abtTargetsData[0] (Tg from InListPassiveTarget answer)
} }
if (pn53x_current_target_new(pnd, &nttmp) == NULL) { if (pn53x_current_target_new(pnd, &nttmp) == NULL) {
pnd->last_error = NFC_ESOFT; pnd->last_error = NFC_ESOFT;
@ -1386,7 +1389,7 @@ pn53x_initiator_select_passive_target_ext(struct nfc_device *pnd,
if (pnt) { if (pnt) {
memcpy(pnt, &nttmp, sizeof(nfc_target)); memcpy(pnt, &nttmp, sizeof(nfc_target));
} }
return abtTargetsData[0]; return res;
} }
int int