如何使用Python读取串口设备的命令输出

0 投票
2 回答
5517 浏览
提问于 2025-04-16 15:53

我有一个嵌入式Linux设备,想用Python做一些事情:

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

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

  2. 接下来,我想在这个嵌入式设备的命令行上运行一个tail命令,像这样:

    # tail -f /var/log/messages

然后我想把输出捕获并显示在我的Python控制台上。

我该怎么做呢?

2 个回答

0

首先,你需要登录到设备上。然后你就可以在这个设备上运行指定的命令。注意:你要运行的命令必须是这个设备支持的。

接下来,在使用open()打开串口后,你需要用Read()找到登录提示,然后用write()输入用户名,密码也是同样的操作。

一旦你成功登录,就可以运行你需要执行的命令了。

0

只需要在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()

撰写回答