Russian Qt Forum
Ноябрь 22, 2024, 04:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] Статическая привязка USB-устройств к портам  (Прочитано 2034 раз)
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« : Февраль 17, 2023, 00:13 »

Коллеги,
к малине подключены два преобразователя интерфейса USB/RS-485, операционная система назначает им имена:
Код:
sergek@Home:~ $ ls -l /dev/*US*
crwxrwxrwx 1 root dialout 188, 0 фев  7 18:20 /dev/ttyUSB0
crwxrwxrwx 1 root dialout 188, 1 фев  7 18:20 /dev/ttyUSB1
При длительной работе операционная система иногда меняет эти имена (по какой причине, не знаю, но недопустимо часто - иногда два раза в сутки, иногда пару раз за неделю):
Код:
sergek@Home:~ $ ls -l /dev/*US*
crwxrwxrwx 1 root dialout 188, 2 фев  8 10:12 /dev/ttyUSB2
crwxrwxrwx 1 root dialout 188, 3 фев  8 10:12 /dev/ttyUSB3
Естественно, программа, подключенная к этим портам по именам ttyUSB0, ttyUSB1 перестает работать.
Чтобы программа использовала постоянные имена, сделал симлинки с помощью правил /etc/udev/rules.d/90-converters.rules:
Код:
SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="0000", SYMLINK+="USR103", MODE="0777"
SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="USR101", MODE="0777"

Теперь ссылки на порты, с которыми работает моя программа, не меняются, даже если операционка изменила их имена:
Код:
lrwxrwxrwx 1 root root         7 фев  8 10:12 /dev/USR101 -> ttyUSB2
lrwxrwxrwx 1 root root         7 фев  8 10:12 /dev/USR103 -> ttyUSB3
Код:
lrwxrwxrwx 1 root root         7 фев 12 14:59 /dev/USR101 -> ttyUSB0
lrwxrwxrwx 1 root root         7 фев 16 19:46 /dev/USR103 -> ttyUSB2
Но подключение к физическим портам при смене их имен пропадает, программа все равно теряет соединение и перестает работать. Приходится ее перезапускать.
Подскажите, пожалуйста, есть ли способ восстановить подключение кроме переоткрытия порта в самой программе?
« Последнее редактирование: Февраль 27, 2023, 16:43 от sergek » Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #1 : Февраль 27, 2023, 16:42 »

С причиной переподключения портов, вроде, разобрался - просадка по напряжению питания. Совсем забыл про эту проблему: когда запускал малину, пришлось искать блок питания и приличный usb-кабель. Подобрал 3-х амперный зарядник, вроде стабильно заработало. А потом подключил два usb-преобразователя и начались фокусы. Придется тратиться на блок питания))
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.