首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ACR1252 NFC读取器序列号

ACR1252 NFC读取器序列号
EN

Stack Overflow用户
提问于 2018-06-19 11:02:24
回答 1查看 2.2K关注 0票数 3

我买了几个ACR1252 NFC阅读器,因为它们似乎是唯一能够存储和返回内部序列号的阅读器。我需要它们作为一个C#程序,在这里我需要区分两个连接到同一台计算机上的NFC读取器,因为Windows按连接顺序指定名称,并且可以更改。

我的问题是:如何访问返回序列号的命令,而不用在读取器上使用NFC卡?只有当读者正在读卡片时,它才能工作。

我的代码(缩写)如下所示:

代码语言:javascript
复制
public void getReaderSerialNumer()
{
    int retCode = Card.SCardEstablishContext(Card.SCARD_SCOPE_SYSTEM, 0, 0, ref hContext);
    readername = "ACS ACR1252 1S CL Reader PICC 0";
    retCode = Card.SCardConnect(hContext, readername, Card.SCARD_SHARE_DIRECT, Card.SCARD_PROTOCOL_T0 | Card.SCARD_PROTOCOL_T1, ref hCard, ref Protocol);

    byte[] sendBytes = new byte[] { 0xE0, 0x00, 0x00, 0x33, 0x00 };
    int pcBytesReturned = 0;
    Byte[] RecieveBuff = new Byte[64];
    uint controlcode = 3225264;

    retCode = Card.SCardControl(hCard, controlcode, ref sendBytes[0], sendBytes.Length, ref RecieveBuff[0], RecieveBuff.Length, ref pcBytesReturned);

    char[] outchar = System.Text.Encoding.UTF8.GetString(RecieveBuff).ToCharArray();
    uint pCard = (uint)hCard;
    retCode = Card.SCardDisconnect((int)pCard, Card.SCARD_RESET_CARD);
}

只有第一个命令SCardEstablishContext可以不带卡地工作。但是对于SCardConnectSCardControl,如果阅读器上没有卡片,我就会出错。

SCardConnect返回retCode = -2146434967

SCardControl返回retCode =6

但我需要这三个命令才能得到:

SCardEstablishContext -> hContext -> SCardConnect -> hCard -> SCardControl ->序列号阅读器

我怎样才能得到没有卡连接的阅读器序列号(只是读取器插入USB端口)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-21 15:25:29

为了在读取器上没有卡片的情况下成功地调用SCardConnect(),您需要使用参数SCARD_SHARE_DIRECT,并将首选的协议参数设置为0:

代码语言:javascript
复制
retCode = Card.SCardConnect(hContext, readername, Card.SCARD_SHARE_DIRECT, 0, ref hCard, ref Protocol);

请参阅SCardConnect函数,dwPreferredProtocols

只有当dwShareMode设置为SCARD_SHARE_DIRECT时,此参数才可能为零。在这种情况下,驱动程序将不执行协议协商,直到用IOCTL_SMARTCARD_SET_PROTOCOL发送SCardControl控制指令为止。

但是,请注意,您通常需要从ACS网站安装驱动程序,因为其他驱动程序可能不提供这种类型的转义命令的功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50926833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档