Как отличить идентичный USB-последовательный преобразователь? - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть 2 идентичных кабеля адаптера USB-to-serial (почти как этот ) для подключения настольного ПК под Ubuntu и некоторыми устройствами RS232.

Я разрабатываю программное обеспечение pythonдля запуска этих устройств.

Мне нужно найти способ определить, к какому из двух адаптеров я подключен.

Я знаю о функции serial.tools.list_ports.comports() в Python, но все настройкиточно так же для обоих адаптеров (см. снимок ниже).За исключением device, но он может меняться в зависимости от порядка подключения.

enter image description here

Как изменить поле некоторых параметров, чтобы сделать оба адаптера питоническимиразличимы?Можно ли написать мой собственный serial_number например?

Ответы [ 2 ]

1 голос
/ 08 апреля 2019

Если это всегда для определенного последовательного устройства, нормальный способ сделать это - использовать программу udev для создания символических ссылок для вас в / dev.Существует множество различных вариантов того, как это сделать, в зависимости от того, к какому физическому порту он подключен, или от атрибутов устройства (например, серийного номера).

Устройства на основе FTDI имеют связанный серийный номерс ними, но поскольку у вас Prolific, у них нет серийного номера, так что это становится немного сложнее.Однако, поскольку мы можем использовать udev для создания символической ссылки в зависимости от того, где она подключена, должно работать что-то вроде следующего (поместите это в файл, видимый udev, например, /etc/udev/rules.d/80-my-converter.rules):

SUBSYSTEM=="usb", KERNELS=="2-1.8.3", SYMLINK+="device_1"
SUBSYSTEM=="usb", KERNELS=="2-1.8.1.3", SYMLINK+="device_2"

Параметр KERNELS придется менять в зависимости от того, куда именно вы подключаете последовательное устройство, и будет зависеть от вашей системы.Вы можете получить список параметров udev на вашем устройстве, выполнив следующее:

udevadm info -a -n /dev/ttyUSB2

Эта страница содержит дополнительную информацию о написании правил udev.

1 голос
/ 08 апреля 2019

Для решения этой проблемы есть несколько альтернативных путей к последовательным устройствам в Linux. Там либо /dev/serial/by-id/ и /dev/serial/by-path вариант для доступа к вашим устройствам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...