Как прочитать вывод команды с последовательного устройства с помощью Python - PullRequest
0 голосов
/ 17 апреля 2011

У меня есть встроенное устройство linux, и вот что я хотел бы сделать с помощью python:

  1. Получить консоль устройства через последовательный порт.Я могу сделать это так:

    >>> ser = serial.Serial('/dev/ttyUSB-17', 115200, timeout=1)

  2. Теперь я хочу запустить команду tail в командной строке встроенного устройства, например:

    # tail -f /var/log/messages

и запишите o / p и отобразите на моей консоли python >>>.

Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 21 апреля 2014

самое первое, что вам нужно, чтобы войти в устройство.Затем вы можете запустить указанную команду на этом устройстве.примечание: команда, которую вы собираетесь выполнить, должна поддерживаться этим устройством.

Теперь после открытия последовательного порта с помощью open () вам нужно найти приглашение для входа в систему с помощью Read (), а затем написать имя пользователя с помощью write(), то же самое повторите для пароля.

после входа в систему вы можете запускать команды, необходимые для выполнения

0 голосов
/ 17 апреля 2011

Просто откройте файл внутри python и сохраните его с нуля. При необходимости можно в другой теме:

>>> ser = serial.Serial('/dev/ttyUSB-17', 115200, timeout=1)
>>> output = open("/var/log/messages", "rb")

И внутри любого цикла программы просто выполните:

data = output.read()
print(data)

Если вы хотите, чтобы он просто печатал на консоли, а вы продолжаете делать другие вещи, введите в чем-то вроде:

from time import sleep
from threading import Thread
class Display(Thread):
    def run(self):
        while True:
            data = self.output.read()
            if data: print(data)
            sleep(1)


t = Display()
t.output = output
t.start()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...