【发布时间】:2019-05-15 06:00:24
【问题描述】:
假设您想为其他程序员提供一个接口,使他们能够编写这样的代码:
# 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 提供了一个类似终端的接口,所以我想让这些测试脚本的作者有机会更直观地编写代码,因为他们会通过 minicom 与设备进行交互或 screen 反正。
【问题讨论】:
-
正确地将终端视为文件。你写它,你读它;你和它没什么关系。我想你对在你的应用程序中处理硬件流控制不感兴趣。在此基础上,创建您想要的内容相对容易:写到 EOL,读到 EOF,冲洗,重复。
标签: python