【问题标题】:How to configure libnfc to use a specific device?如何配置 libnfc 以使用特定设备?
【发布时间】:2018-02-06 16:45:11
【问题描述】:

我有一个连接了两个 NFC 阅读器的 Raspberry PI。问题是每次系统重新启动或读取器被分离并重新连接时,读取器都会获得不同的设备编号。

因此,我创建了 udev 规则,这些规则根据设备所连接的物理端口创建固定的设备名称。例如。插入左上方端口的 NFC 阅读器始终通向 /dev/nfc_a,插入右上方端口始终通向 /dev/nfc_b。

我现在如何配置 libnfc 以使用这些设备并将设备名称(例如 /dev/nfc_a)报告为读数的一部分?我在 libnfc 之上使用 Node-RED 和 node-red-contrib-nfc (https://github.com/hardillb/node-red-contrib-nfc)。我的最终目标是安全地区分我的 Node-RED 流程中的两个阅读器,以便对读数采取不同的行动。

我已经找到了“connstring”配置,但我不知道如何正确设置它以使用 /dev/nfc_a。

【问题讨论】:

    标签: raspberry-pi usb node-red udev lib-nfc


    【解决方案1】:

    自从我写这个节点以来已经很久了,但是回顾一下它基于的 nodejs 库 (nfc) 输出消息应该包含一个名为 deviceID 的字段,它应该指示哪个 NFC 读取器触发了输入。

    当我在我的机器上运行时,我得到:

    deviceID: 'pn53x_usb:001:005'
    

    其中 001 是 USB 总线 ID,005 是设备 ID,与 lsusb 的输出相匹配。只要读卡器始终插入同一个 USB 插座,它们就应该保持静态。

    【讨论】:

    • 感谢您的回答。但这正是问题所在:设备 id 是在阅读器拔出并再次插入时发生变化的那个。这就是为什么我创建了使用物理总线 + 端口的 udev 规则,例如作为左上端口的 ATTR{devpath}=="1.2"。 BusID 是静态的,但 deviceID 会发生变化:拔出之前 deviceID: 'pn53x_usb:001:005' 之后拔出/重新插入 deviceID: 'pn53x_usb:001:046' (虽然我还没有插入其他 41 个设备...)
    • 你把它插回同一个 USB 插口?
    • 是的,同一个USB插口,每次插上不同的deviceID。
    猜你喜欢
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    • 2010-10-16
    • 2015-07-27
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多