如何使用python从串行设备读取命令输出

时间:2011-04-17 00:22:03

标签: python serial-port

我有一个嵌入式linux设备,这就是我想用python做的事情:

  1. 通过串口获取设备控制台。我可以这样做:

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

  2. 现在我想在嵌入式设备命令行上运行tail命令,如下所示:

    # tail -f /var/log/messages

  3. 并捕获o / p并显示在我的python>>>控制台。

    我该怎么做?

2 个答案:

答案 0 :(得分:0)

只需打开python中的文件并保持从它的readign。如果需要,在另一个帖子中:

>>> 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()

答案 1 :(得分:0)

首先,您需要登录设备。 然后您可以在该设备上运行指定的命令。 注意:该设备必须支持您要运行的命令。

现在使用open()打开串口后,你需要使用Read()找到登录提示,然后使用write()写入用户名,同样重复密码。

登录后,您现在可以运行执行所需的命令