【发布时间】:2013-03-02 10:51:18
【问题描述】:
我正在使用从串行端口读取行的twisted 创建一个python 应用程序。 为了(单元)测试该应用程序而不必将实际设备连接到串行端口(也在没有实际串行端口的 pc 上)我想创建一个 python 脚本/应用程序来设置虚拟串行端口并写入它,所以扭曲的应用程序可以连接到虚拟串口的另一端并从中读取。这样我就可以写一些单元测试了。
我发现在 linux 中使用伪终端可以做到这一点。我还在https://askubuntu.com/questions/9396/virtual-serial-port-for-testing-purpose 上找到了一个工作示例脚本。
我想将该脚本更改为一个类,我可以在该类上调用 write 方法将数据写入串行端口,然后测试扭曲的应用程序。
这个示例脚本用 poll 和 select 以及一个我不太了解的 linux stty 命令做了很多事情。我希望有人可以填补我的知识空白或提供一些提示。
干杯,
道夫。
【问题讨论】:
-
我找到了使用 socat 的解决方法。如果我在终端上发出
socat PTY,link=$HOME/pty_in,raw,echo=0 PTY,link=$HOME/pty_out,我可以访问 ~/pty_in 和 ~/pyt_out 作为串行端口,例如使用 pyserial。但是,如果我可以在没有 socat 和普通 python 的情况下做到这一点,那就更好了。