Для входа в minicom и сохранения журнала я использую «sudo minicom -C nameoffile», но я хочу сделать это в цикле, открытие minicom может быть выполнено с помощью подпроцесса, но я не смог найти ничего для выхода из minicom в моем цикл и продолжить цикл, так как вам нужно ввести «ctrl-a, затем x» или «ctrl-a, затем q», а после необходимо нажать Enter для подтверждения. У кого-нибудь есть идея или предложение?
Python: как заставить скрипт входить и выходить из терминала minicom?
Ответы (1)
Первое (и очевидное) решение
может потребовать немного больше усилий (или нет - решать вам), и, вероятно, лучший способ сделать это - откройте устройство самостоятельно с помощью pySerial (и вот пример), а затем делайте с данными все, что хотите - записывайте их в файл, анализируйте, отправляйте в НАСА или выполняйте все перечисленные выше действия. :)
Если вы настаиваете на том, чтобы обойти это решение:
Одна возможность, о которой я могу думать ...
передает команду minicom на tee
. когда вы проходите через tee
, вы можете дать ему имя файла (для входа) и передать tee
в качестве входных данных для вашего собственного двоичного файла / скрипта. Это должно позаботиться о ведении журнала + анализе ввода. (Я не пробовал это с minicom, и я не уверен, как вы таким образом выйдете из своей конвейерной программы).
Еще одна возможность, о которой я могу думать ...
перенаправляет в файл (>
), а затем записывает другой двоичный файл / скрипт, который будет читать файл по мере его записи (как это делает tail -f
). Вот пример чтения файл на python, пока он пишется.
Поскольку это последовательные данные, я предполагаю, что это довольно медленно (особенно NMEA), поэтому я не думаю, что у вас будет большая задержка, если вы запишете его в файл и прочитаете его с помощью другого двоичного файла / скрипта.
pyserial
намного проще. Итак, +1 за первое предложение. Проблемы с задержкой записи файлов возникают из-за буферизации, быстрые данные на самом деле проще, чем медленные.
- person DrV; 24.08.2014