如何使用Python读取串口设备的命令输出
我有一个嵌入式Linux设备,想用Python做一些事情:
首先,我想通过串口获取设备的控制台。我可以这样做:
>>> ser = serial.Serial('/dev/ttyUSB-17', 115200, timeout=1)
接下来,我想在这个嵌入式设备的命令行上运行一个
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()