44 #define MAX_DEVICE_COUNT 16
48 main (
int argc,
const char *argv[])
54 const char *acLibnfcVersion;
57 byte_t abtRx[PN53x_EXTENDED_FRAME_MAX_LEN];
59 const byte_t pncmd_diagnose_communication_line_test[] = { 0xD4, 0x00, 0x00, 0x06,
'l',
'i',
'b',
'n',
'f',
'c' };
60 const byte_t pncmd_diagnose_rom_test[] = { 0xD4, 0x00, 0x01 };
61 const byte_t pncmd_diagnose_ram_test[] = { 0xD4, 0x00, 0x02 };
64 errx (1,
"usage: %s", argv[0]);
68 printf (
"%s use libnfc %s\n", argv[0], acLibnfcVersion);
70 if (!(pnddDevices = malloc (MAX_DEVICE_COUNT *
sizeof (*pnddDevices)))) {
71 fprintf (stderr,
"malloc() failed\n");
78 printf (
"No NFC device found.\n");
81 for (i = 0; i < szFound; i++) {
85 ERR (
"%s",
"Unable to connect to NFC device.");
89 printf (
"NFC device [%s] connected.\n", pnd->
acName);
91 result = pn53x_transceive (pnd, pncmd_diagnose_communication_line_test,
sizeof (pncmd_diagnose_communication_line_test), abtRx, &szRx);
93 result = (memcmp (pncmd_diagnose_communication_line_test + 2, abtRx,
sizeof (pncmd_diagnose_communication_line_test) - 2) == 0);
95 printf (
" Communication line test: %s\n", result ?
"OK" :
"Failed");
97 result = pn53x_transceive (pnd, pncmd_diagnose_rom_test,
sizeof (pncmd_diagnose_rom_test), abtRx, &szRx);
99 result = ((szRx == 1) && (abtRx[0] == 0x00));
101 printf (
" ROM test: %s\n", result ?
"OK" :
"Failed");
103 result = pn53x_transceive (pnd, pncmd_diagnose_ram_test,
sizeof (pncmd_diagnose_ram_test), abtRx, &szRx);
105 result = ((szRx == 1) && (abtRx[0] == 0x00));
107 printf (
" RAM test: %s\n", result ?
"OK" :
"Failed");