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

发布于 2024-11-02 00:18:14 字数 355 浏览 0 评论 0原文

我有一个嵌入式 Linux 设备,这是我想使用 python 执行的操作:

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

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

  2. 现在我想在嵌入式设备命令行上运行 tail 命令,像这样:

    # tail -f /var/log/messages

并捕获 o/p 并显示在我的 python 上 >>>安慰。

我该怎么做?

I have an embedded linux device and here's what I would like to do using python:

  1. Get the device console over serial port. I can do it like this:

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

  2. Now I want to run a tail command on the embedded device command line, like this:

    # tail -f /var/log/messages

and capture the o/p and display on my python >>> console.

How do I do that ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝天 2024-11-09 00:18:14

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

Just open the file inside python and keep readign from it. If needed be, in another thread:

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

And inside any program loop, just do:

data = output.read()
print(data)

If you want it to just go printing on the console as you keep doing other stuff, type
in something like:

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()
星光不落少年眉 2024-11-09 00:18:14

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

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

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

very first you need to get log-in into the device.
then you can run the specified command on that device.
note:command which you are going to run must be supported by that device.

Now after opening a serial port using open() you need to find the login prompt using Read() and then write the username using write(), same thing repeat for password.

once you have logged-in you can now run the commands you needed to execute

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文