Как Вы используете minicom с stdin и stdout?

Это сильно связано? На самом деле я думаю, 'делают одна вещь хорошо' принцип и использование каналов и т.д. для создавания рабочих приложений предлагает слабую связь. Когда Вы выполняете, говорите PS axf | grep энергия затем, PS и grep очень слабо связываются.

1
02.09.2013, 23:34
3 ответа

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.

6
27.01.2020, 23:15
  • 1
    я сделал это с pySerial и это работало как очарование. Просто требуемый, чтобы отметить, что после Ctrl+A, Z в minicom, существует опция записать файл в последовательный порт или записать в файл от порта. Те файлы могли быть считаны с tail -f. –  Vorac 18.09.2013, 11:25

Ответ Уоррена Янга выше правильный, однако в интересах лени есть лучший ответ:

cat $file > /dev/ttyUSB0тоже работает. Что касается вызовов tc(g|s)etattr, они обрабатываются командой stty(, например.stty -F /dev/ttyUSB0 9600)!

0
27.01.2020, 23:15

Используйте 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+ ]для выхода!

1
08.04.2021, 11:39

Теги

Похожие вопросы