Как настроить libnfc для использования определенного устройства?

У меня есть Raspberry PI с двумя подключенными считывателями NFC. Проблема в том, что считыватели получают разные номера устройств каждый раз при перезагрузке системы или при отключении и повторном подключении считывателя.

Поэтому я создал правила udev, которые создают фиксированное имя устройства в зависимости от физического порта, к которому подключено устройство. Например. подключение считывателя NFC к верхнему левому порту всегда приводит к /dev/nfc_a, а подключение к верхнему правому порту всегда ведет к /dev/nfc_b.

Как мне теперь настроить libnfc для использования этих устройств и сообщать имена устройств, такие как /dev/nfc_a, как часть чтения? Я использую Node-RED с node-red-contrib-nfc (https://github.com/hardillb/node-red-contrib-nfc) поверх libnfc. Моя конечная цель — безопасно различать двух считывателей в моем потоке Node-RED, чтобы они по-разному реагировали на показания.

Я уже нашел конфигурацию "connstring", но не знаю, как правильно настроить ее для использования /dev/nfc_a.


person Rene Auberger    schedule 06.02.2018    source источник


Ответы (1)


Прошло много времени с тех пор, как я написал этот узел, но оглядываясь назад на библиотеку nodejs, на которой он основан (nfc) выходное сообщение должно содержать поле с именем deviceID, которое должно указывать, какой считыватель NFC инициировал ввод.

Когда я запускаю свою машину, я получаю:

deviceID: 'pn53x_usb:001:005'

Где 001 — идентификатор шины USB, а 005 — идентификатор устройства, который совпадает с выводом lsusb. Они должны оставаться неизменными до тех пор, пока считыватели всегда подключены к одним и тем же USB-разъемам.

person hardillb    schedule 06.02.2018
comment
Спасибо за ваш ответ. Но именно в этом проблема: идентификатор устройства меняется, когда ридер отключается и снова подключается. Вот почему я создал правило udev, которое использует физическую шину + порт, например. как ATTR{devpath}==1.2 для верхнего левого порта. BusID статичен, но deviceID меняется: перед отключением deviceID: 'pn53x_usb:001:005' после отключения/повторного подключения deviceID: 'pn53x_usb:001:046' (хотя за это время я не подключил 41 другое устройство...) - person Rene Auberger; 06.02.2018
comment
Вы снова подключили его к тому же USB-разъему? - person hardillb; 06.02.2018
comment
Да, один и тот же USB-разъем, каждый раз разные идентификаторы устройств. - person Rene Auberger; 07.02.2018