Это сильно связано? На самом деле я думаю, 'делают одна вещь хорошо' принцип и использование каналов и т.д. для создавания рабочих приложений предлагает слабую связь. Когда Вы выполняете, говорите PS axf | grep энергия затем, PS и grep очень слабо связываются.
minicom
является большим для интерактивного использования, но это не правильный инструмент для программного ввода-вывода.
Ваша локальная программа Python должна просто открыться /dev
узел для последовательного порта. Это работает точно так же, как запись в файл:
fd = os.open('/dev/ttyUSB0', os.O_RDWR)
fd.write(...)
Единственный хитрый бит настраивает скорость передачи и такой. Для этого пользуйтесь termios библиотекой Python:
attr = termios.tcgetattr(fd)
attr[5] = attr[6] = termios.B9600
termios.tcsetattr(fd, termios.TCSANOW, attr)
Документы Python для этого в значительной степени предполагают, что Вы использовали этот API от C и просто нуждаетесь в помощи, переводя в Python. Так, при потере работоспособности по этому пути необходимо использовать классику как Stevens и Усовершенствованное Программирование Rago в Среде Unix.
Высокоуровневая библиотека, которая получает Вас выше termios
уровень и дает Вам, мобильность к не - *ix системы типов является pySerial.
Ответ Уоррена Янга выше правильный, однако в интересах лени есть лучший ответ:
cat $file > /dev/ttyUSB0
тоже работает. Что касается вызовов tc(g|s)etattr
, они обрабатываются командой stty
(, например.stty -F /dev/ttyUSB0 9600
)!
Используйте miniterm.py
! Он включен в модуль pySerial , о котором Уоррен упомянул в своем ответе.
Вывод всегда находится на стандартном выходе, поэтому вы можете передать его, собрать, выполнить grep, awk, sed, распечатать, заархивировать, разархивировать.
Установите его с помощью pip для вашего пользователя, и miniterm.py
должен быть помещен в ваш ~/.local/bin
, чтобы вы могли просто выполнить его:
$ pip3 install pySerial
$ miniterm.py /dev/ttyUSB0
--- Miniterm on /dev/ttyUSB0 9600,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
Если это не сработает, вы также можете просто запустить последовательный модуль:
$ python3 -m serial /dev/ttyUSB0
--- Miniterm on /dev/ttyUSB0 9600,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
Не забудьте использовать Ctrl
+ ]
для выхода!
minicom
, существует опция записать файл в последовательный порт или записать в файл от порта. Те файлы могли быть считаны сtail -f
. – Vorac 18.09.2013, 11:25