【发布时间】:2012-10-24 01:41:03
【问题描述】:
我有this magnetic card reader(通用)。说明书是中文的,看不懂。我有两台 Linux 机器,如果你通过 USB 插入它,它就会开机,如果你通过一张卡(打开一个文本编辑器),你会得到一个有点像这样的代码/字符串:
1303031110012015¿999999999999999
显然,某处有卡片信息(即电影院附属卡),我想从该号码中提取信息(例如所有者的姓名和其他数据)。如果我运行lsusb,我会得到这样的结果:
阅读器已拔下
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 04f2:b293 Chicony Electronics Co., Ltd
Bus 007 Device 003: ID 0cf3:3005 Atheros Communications, Inc. AR3011 Bluetooth
读卡器已插入
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 04f2:b293 Chicony Electronics Co., Ltd
Bus 007 Device 003: ID 0cf3:3005 Atheros Communications, Inc. AR3011 Bluetooth
Bus 005 Device 005: ID 05fe:1010 Chic Technology Corp. Optical Wireless
我知道一些 Python 和 Ruby,但不知道从哪里开始。如果有人能指出我正确的方向,那就太好了。你可以吗? (如果有适用于 Windows、Linux 和 Mac 的跨平台驱动程序,那就太好了。)
【问题讨论】:
-
当您插入它时,您是否还会在 /dev/input/by-id/ 中获得一个新条目?
-
顺便说一句,大多数卡只有数字(记录 ID),并依赖外部数据库来获取您要求的其他信息。
-
@Keith 是的,我在 /dev/input/by-id/ 中获得了该条目关于其他评论,必须有办法获取信息,例如这个帖子:@ 987654322@
-
您显示的是 USB 设备列表,而不是该目录中的列表。如果它真的是 HID 设备,您有两种选择。使用低级 USB 库并读取 USB 事件,或使用来自输入设备的“熟” HID 事件。我可以向您展示 Python 代码来读取 HID/输入设备。或者如果你想使用USB级别的方法,你可以使用pyusb。
-
你能告诉我你的代码示例,以便我决定吗? (我也在阅读 pyusb :))谢谢。