3

Я пытаюсь написать скрипт, который подключается и запускает команду на /dev /ttyUSB0 после того, как получит вывод.

screen -d -m 'SCREEN COMMAND' -L /dev/ttyUSB0

Но это не создает выходной файл. Как я могу решить эту проблему? Есть идеи?

2 ответа2

1

Попробуйте pyserial библиотеку python. Я думаю, что вы можете решить это с помощью этой библиотеки. Вы можете найти учебник здесь

0

screen хорош для того, чтобы сеанс терминала запускался отдельно. Однако он не был предназначен для автоматического запуска команд на терминалах.

Для этого был разработан еще один инструмент - expect.

expect позволяет сценарий взаимодействия человека с программами, запущенными на терминале.

Это мощный инструмент, но он также является еще одним языком сценариев для изучения и может быть немного утомительным. Если вы знакомы с Perl, модуль Perl Expect может сэкономить вам много усилий (есть также ожидаемые модули для других языков сценариев, таких как Python).

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .