Я работаю над проектом, в котором мне нужно выполнить последовательную связь с любым подключенным устройством (ttyS0, ttyS1 или ttyUSB0).К счастью, я наткнулся на очень полезную ссылку на стек-поток: « Простой способ запрашивать информацию о подключенных USB-устройствах в Python? ».В этой ссылке есть код Python, который прекрасно работает и дает правильное имя устройства и подробности.
здесь, в примере кода: "/ dev / bus / usb / 005/002" - это информация об устройстве"FT232 Serial (UART)".Итак, есть ли способ найти либо отображение / dev / bus / usb / 005/002 с ttyS0 / ttyUSB0, либо прямой доступ к UART с информацией об устройстве и выполнить последовательную связь с помощью "/ dev / bus / usb / <шина> / <устройство> "вместо ttyS0 или ttyUSB0.
код питона:
import re
import subprocess
device_re = re.compile("Bus\s+(?P<bus>\d+)\s+Device\s+(?P<device>\d+).+ID\s(?P<id>\w+:\w+)\s(?P<tag>.+)$", re.I)
df = subprocess.check_output("lsusb")
devices = []
for i in df.split('\n'):
if i:
info = device_re.match(i)
if info:
dinfo = info.groupdict()
dinfo['device'] = '/dev/bus/usb/%s/%s' % (dinfo.pop('bus'), dinfo.pop('device'))
devices.append(dinfo)
print devices
результат:
{'device': '/dev/bus/usb/001/001', 'tag': 'Linux Foundation 2.0 root hub', 'id': '1d6b:0002'}
{'device': '/dev/bus/usb/005/002', 'tag': 'Future Technology Devices International, Ltd FT232 Serial (UART) IC', 'id': '0403:6001'}
{'device': '/dev/bus/usb/005/001', 'tag': 'Linux Foundation 1.1 root hub', 'id': '1d6b:0001'}
{'device': '/dev/bus/usb/004/003', 'tag': 'Lite-On Technology Corp. ', 'id': '04ca:0061'}
{'device': '/dev/bus/usb/004/002', 'tag': 'Dell Computer Corp. ', 'id': '413c:2107'}
{'device': '/dev/bus/usb/004/001', 'tag': 'Linux Foundation 1.1 root hub', 'id': '1d6b:0001'}
{'device': '/dev/bus/usb/003/001', 'tag': 'Linux Foundation 1.1 root hub', 'id': '1d6b:0001'}
{'device': '/dev/bus/usb/002/001', 'tag': 'Linux Foundation 1.1 root hub', 'id': '1d6b:0001'}
Благодарность Аатифу Шейху