DataFlex
DataFlex
PC/SC Get Card UID
See more SCard Examples
Sends the APDU command to get a card's UID.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoScard
Variant vBdRecv
Handle hoBdRecv
Integer iNumBytes
String sTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatSCard)) To hoScard
If (Not(IsComObjectCreated(hoScard))) Begin
Send CreateComObject of hoScard
End
// First establish a context to the PC/SC Resource Manager
Get ComEstablishContext Of hoScard "user" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoScard To sTemp1
Showln sTemp1
Procedure_Return
End
// Use your own smart card reader name here.
Get ComConnect Of hoScard "ACS ACR122 0" "shared" "no_preference" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoScard To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComConnectedReader Of hoScard To sTemp1
Showln "Connected reader: " sTemp1
Get ComActiveProtocol Of hoScard To sTemp1
Showln "Active protocol: " sTemp1
Get ComCardAtr Of hoScard To sTemp1
Showln "ATR: " sTemp1
Get ComReaderStatus Of hoScard To sTemp1
Showln "Reader Status: " sTemp1
// Send the APDU command 0xFF, 0xCA, 0x00, 0x00, 0x00
Get Create (RefClass(cComChilkatBinData)) To hoBdRecv
If (Not(IsComObjectCreated(hoBdRecv))) Begin
Send CreateComObject of hoBdRecv
End
Get ComActiveProtocol Of hoScard To sTemp1
Get pvComObject of hoBdRecv to vBdRecv
Get ComTransmitHex Of hoScard sTemp1 "FFCA000000" vBdRecv 32 To iSuccess
If (iSuccess = True) Begin
Get ComGetEncoded Of hoBdRecv "hex" To sTemp1
Showln "Received: " sTemp1
// The UID is the returned data without the final 2 bytes.
Get ComNumBytes Of hoBdRecv To iNumBytes
If (iNumBytes > 2) Begin
Get ComGetEncodedChunk Of hoBdRecv 0 (iNumBytes - 2) "hex" To sTemp1
Showln "UID: " sTemp1
End
End
Else Begin
Get ComLastErrorText Of hoScard To sTemp1
Showln sTemp1
End
// Disconnect from this reader.
Get ComDisconnect Of hoScard "leave" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoScard To sTemp1
Showln sTemp1
End
// Applications should always release the context when finished.
Get ComReleaseContext Of hoScard To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoScard To sTemp1
Showln sTemp1
End
End_Procedure