ACS ACR83 PINeasy Smart Card Reader User Manual

Page 44

Advertising
background image

ACR83 – Reference Manual

[email protected]

Version 1.05

www.acs.com.hk

Page 44 of 49

exit(1);

}

i = 0;

pReader = pmszReaders;

while (*pReader != '\0')

{

readerName[i] = new char[strlen(pReader) + 1];

if (readerName[i] == NULL)

{

printf("Error: not enough memory\n");

exit(1);

}

strcpy(readerName[i], pReader);

i++;

// Advance to the next value

pReader = pReader + strlen(pReader) + 1;

}

// Free the memory

SCardFreeMemory(hSCardContext, pmszReaders);

}

if (numReaders == 0)

{

printf("Error: cannot find reader in the system\n");

return 1;

}

SCARDHANDLE hCard;

DWORD dwAP;

const int BUFFER_SIZE = 300;

BYTE bSendBuffer[BUFFER_SIZE];

DWORD dwSendBufferLen;

BYTE bRecvBuffer[BUFFER_SIZE];

DWORD dwRecvBufferLen;

BYTE bOutputBuffer[100];

DWORD dwNumBytesReturned;

DWORD featureControlCodes[FEATURE_SIZE];

DWORD controlCode;

// Connect to the first reader

printf("Connecting to %s...\n", readerName[0]);

lReturn = SCardConnect(hSCardContext, readerName[0],

SCARD_SHARE_SHARED,

SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1, &hCard, &dwAP);

if (lReturn != SCARD_S_SUCCESS)

printf("Error: SCardConnect failed with error 0x%08x\n", lReturn);

else

{

// Get feature request

printf("Getting feature request...\n");

dwRecvBufferLen = sizeof(bRecvBuffer);

lReturn = SCardControl(hCard, CM_IOCTL_GET_FEATURE_REQUEST,

NULL, 0,

bRecvBuffer, dwRecvBufferLen, &dwRecvBufferLen);

Advertising