pcsc lite:多个没有唯一序列号的ACR122T设备-linux

pcsc lite:多个没有唯一序列号的ACR122T设备-linux,linux,ubuntu,usb,nfc,pcsc,Linux,Ubuntu,Usb,Nfc,Pcsc,我有多个ACR122T智能卡设备,没有唯一的序列号(来自ACS)。我需要知道我从pcsc lite中连接到哪个物理智能卡。我通过使用lsusb知道物理设备在哪个USB端口上,但如何将该USB端口信息映射到ScardeTAttribute(SCARD_ATTR_device_UNIT) 似乎地图应该在操作系统级别,因为我找不到从pscs lite API中读取USB端口信息(lsusb结果)的方法 这篇文章提到了一种方法, 但我不理解“使用开发编号以确保我始终使用正确的阅读器”背后的细节 谢谢你的

我有多个ACR122T智能卡设备,没有唯一的序列号(来自ACS)。我需要知道我从pcsc lite中连接到哪个物理智能卡。我通过使用lsusb知道物理设备在哪个USB端口上,但如何将该USB端口信息映射到ScardeTAttribute(SCARD_ATTR_device_UNIT)

似乎地图应该在操作系统级别,因为我找不到从pscs lite API中读取USB端口信息(lsusb结果)的方法

这篇文章提到了一种方法, 但我不理解“使用开发编号以确保我始终使用正确的阅读器”背后的细节

谢谢你的帮助。
谢谢,-Phil

免责声明:我在Windows上工作,而不是Linux

ACR122T(和ACR122U)设备不仅没有序列号(背面打印的序列号除外),而且也没有USB序列号,因此只能通过插入的USB端口进行区分。此外,我这里所有的ACR1226和我们(我们买了一堆)都将自己标识为Windows的“ACS ACR122”。使用专有API获取固件版本,ACR122T和ACR122U都将自己标识为ACR122U(例如“ACR122U207”或“ACR122U214”)

这意味着操作系统本身除了插入USB端口外,无法以任何其他方式区分多个设备

我还尝试在pcsc设备和操作系统设备之间建立连接,但除了(仅在Windows 8启动时可用)之外,我没有找到任何东西,因此在我看来,似乎没有办法通过pcsc调用实现这一点


设备单元由pcsc层按顺序给出,因此您可以区分所连接的设备,但不能识别特定设备。

感谢windows 8提供的信息。SCardGetReaderDeviceInstanceId函数是我们在linux端想要的,但它看起来不像是当前在pcsc lite中的函数。@PhilBr只是想说明一下,即使您能够成功获得操作系统的设备句柄,它也不会帮到您,因为ACR112不会报告任何序列号或其他独特信息。