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

Python 以编程方式与串行终端交互,python,Python,假设您想为其他程序员提供一个接口,使他们能够编写这样的代码: # connect to remote Linux device >>> conn = myClass('/dev/ttyUSB0', 115200, '8N1') >>> conn.login('myname', 'mypass') >>> output = conn.command('ls -al') >>> print output total 3 drwx

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

# 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本身使用的源代码中发现,它至少似乎启用了一些类似终端的配置选项。但哪种框架支持像IO这样的终端? 一般来说,我只是一个嵌入式系统领域的初学者,但直到现在,在我看来,通过串行连接的终端IO应该是这个环境中常见的日常问题,应该已经有一个框架在做“艰苦的工作”。但是直到现在我都没有找到它

背景
目前,我公司的大多数人都手动测试他们的嵌入式系统开发主题。但我们希望切换到一个更自动化的场景,使用大量的
unittest
脚本。因为在我们的嵌入式系统上,每个UART已经有一个类似终端的接口,所以我想给这些测试脚本的作者提供更直观的代码编写的机会,因为它们无论如何都会通过MICICOM或屏幕与设备交互。

< P>我会强烈地考虑和研究Python项目。终端。我在Twisted上看到了一个终端屏幕刮板,在-,至少有一个公共telnet客户端

我不确定您要与哪个终端接口通信,但这里至少有一个Twisted中的终端仿真器示例:

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

没有解决具体问题,但您很可能通过谷歌搜索它来获得以下信息:

如果您想与串行I/F进行实际交互,请考虑使用:(<代码> PIP安装PySyth):

以下是一份:


终端被正确地视为文件。你给它写信,你从中阅读;你和它没什么关系。我想您对从应用程序内部处理硬件流控制不感兴趣。在这个基础上,创建你想要的东西相对容易:写到EOL,读到EOF,冲洗,重复。编辑:我的问题是下面的,但是我想我可以自己谷歌。“那么,我怎么才能知道设备使用的是哪个终端接口呢?”我不知道,我在Twisted及其周围的工作主要是异步HTTP交互,而不是编写TTY接口代码。Twisted的API文档就在这里——它看起来是他们选择的shell仿真器,在SSH上工作。是的,但我仍然认为它在这里作为一个答案很有帮助。
import serial

ser = serial.Serial(
    port='/dev/ttyUSB1',
    baudrate=9600,
    parity=serial.PARITY_ODD,
    stopbits=serial.STOPBITS_TWO,
    bytesize=serial.SEVENBITS
)

ser.open()


ser.write("bla bla" + '\r')