gpt4 book ai didi

python - 以编程方式与串行终端交互

转载 作者:太空狗 更新时间:2023-10-29 21:11:14 24 4
gpt4 key购买 nike

假设您想为其他程序员提供一个接口(interface),使他们能够编写这样的代码:

# connect to remote Linux device
>>> conn = myClass('/dev/ttyUSB0', 115200, '8N1')
>>> conn.login('myname', 'mypass')
>>> output = conn.command('ls -al')
>>> print output
total 3
drwxr-xr-x 49 myname myname 4096 Jun 21 15:13 .
drwxr-xr-x 4 root root 4096 Mar 20 14:43 ..
drwxr-xr-x 49 myname myname 1005 Jun 14 11:23 .vimrc
>>> output2 = conn.command('cd ..')
>>> print output2

>>>

您将如何实现它?

现状

我首先想到了pyserial , 但它似乎将串行连接简单地视为一个文件之类的对象,而不是一个终端。我从它的源代码中发现 pyserial 本身使用 termios ,这至少似乎启用了一些类似终端的配置选项。但是哪个框架可以实现类似终端的 IO?总的来说,我只是整个嵌入式系统世界的初学者,但直到现在,在我看来,通过串行连接的终端 IO 应该是这种环境中常见的日常问题,并且应该已经有一个框架在做“艰苦的工作” ”。但是到现在都没找到。

背景

目前,我公司的大多数人都手动测试他们的嵌入式系统开发主题。但是我们想切换到一个更自动化的场景,有很多像脚本一样的unittest。因为我们的嵌入式系统上的每个 UART 已经有了类似终端的接口(interface),所以我想为这些测试脚本的作者提供机会,让他们能够更直观地编写代码,因为他们会通过 minicom 与设备进行交互或无论如何屏幕

最佳答案

我会强烈考虑调查 Twistedprojects using Twisted对于与终端对话的 Python 项目。我在 Twisted 上看到了一个终端屏幕抓取器,在 GitHub 上至少看到了一个公共(public) telnet 客户端。 - https://github.com/fjogstad/twisted-telnet-client .

我不确定您正在尝试与哪个终端界面对话,但至少这里有一个 Twisted 中的终端仿真器示例:https://launchpad.net/python-tvi955 .

使用像 Twisted 这样的异步框架的一个好处是,您可以让一个测试服务器在多个虚拟机或物理机上并行驱动测试。

关于python - 以编程方式与串行终端交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17237521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com