linux - 如何确定输入来自哪个键盘

标签 linux bash macos keyboard rfid

场景:

  • 我有一个 usb-RFID 阅读器
  • 将它连接到笔记本电脑上,它就像新连接的 USB 键盘一样工作,例如无需安装任何驱动程序
  • 当接触带有 RFID 标签的阅读器时
  • 它在我当前的窗口(例如终端/外壳)中输入 RFID 编号(如 0009339384\n)- 例如它甚至发送 \n
  • 因此,它的工作方式就好像我在笔记本键盘上键入数字一样

问题是:

  • 是否可以直接读取 RFID 阅读器而无需一些内核级驱动程序,例如像 cat/dev/keyboard1 ...
  • 换句话说,我如何确定字符来自哪个“键盘”?
  • 使用 OS X,但也很高兴知道 Linux 的解决方案。

此外,我想附加两个读者 - 所以我肯定需要清楚地区分这两个读者。我想在 bash (perl) 脚本中使用 rfid-reader,所以我肯定在寻找一种无需编译某些“驱动程序”的解决方案……这可能吗?

OS X 将其标识为:

SYC ID&IC USB Reader:

  Product ID:   0x0035
  Vendor ID:    0xffff
  Version:  1.00
  Serial Number:    08FF20140315
  Speed:    Up to 1.5 Mb/sec
  Manufacturer: Sycreader RFID Technology Co., Ltd
  Location ID:  0x14100000 / 18
  Current Available (mA):   500
  Current Required (mA):    100
  Extra Operating Current (mA): 0

编辑 好的,看起来在 Linux 中可以完成 - 刚刚找到

对于 OS X - 在 unix 上完全相同:https://unix.stackexchange.com/questions/228413/route-keyboard-through-only-dev-ttys000-on-mac-os-x - 不幸的是,没有任何答案就关闭了:(

最佳答案

好的,所以 - 在 Linux 中很容易解决。正如问题的编辑一样 - 这里已经有很多类似的问题。

解决方案是:读取特定的/dev/input/eventN 设备。

在我的例子中,我使用 Linux::Input perl 模块。完美运行。

在这里添加代码是没有意义的,包中包含 evtest.pl - 这样任何人都可以轻松检查它是如何工作的。

还需要解决一个问题——例如即使在读取设备并很好地从 rfid 阅读器获取所有事件(一个数字有 4 个事件)时,rfid 代码仍然插入到事件窗口中,就像它来自键盘一样。 (这将是另一个问题)。

对于 OS X,我还没有一个简单的解决方案,但现在专注于 Linux 变体。 :)

关于linux - 如何确定输入来自哪个键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44542203/

相关文章:

php - 在MacOS上php 7.4的Pecl扩展编译错误

linux - 在 OSX 10.10.5 上使用 vagrant 时出现 curl 错误 23

mysql - 无法在 docker 容器中安装 mysql-server

linux - Bash:文本格式

linux - $@ 在 shell 脚本中是什么意思?

linux - BASH 在同一 2 行上打印 2 个字符串

macos - 在Mac上的.profile中导出路径

python - 监视文件系统中发生的事件

mysql - 将 MySQL "SELECT"查询传递给 shell 变量

linux - 与 pthread 互斥