使用Python,在Linux上如何创建一个虚拟串口?

5
我有两个Python程序需要通过pySerial API从同一个串口读取数据。据我所知,不能让两个程序同时从同一个串口读取数据。因此,我的计划是让一个Python程序从物理串口读取数据,然后将它所接收到的数据完全复制到虚拟串口上,这样其他Python程序就可以通过 pySerial API 读取它。
在使用 pySerial 的这两个 Python 程序中,只有其中一个程序会返回任何内容。您有什么想法如何实现这个功能吗?

他们必须从同一个串口读取相同的数据吗? - Iron Fist
是的,一个用于处理数据,另一个用于监控数据。 - user5062278
为什么不让从物理串口读取数据的脚本,将相同的数据发送到另一个脚本呢?就像在两个脚本之间共享数据而不必创建虚拟串口,清楚吗? - Iron Fist
1个回答

2
创建虚拟串口可能会因您的需求而变得琐碎或复杂。如果您只需要从真实端口传播数据到虚拟端口(反之亦然),您可以使用像 socat, remserial, 或 conserver 这样的工具。在这里查看使用示例: 1, 2, 3。这些工具创建一个伪终端并在双向上在真实端口和伪终端之间传输数据。但是,它们不会传播其他API,包括特定于串行端口的各种 termiosioctl() 调用。
如果这还不够,你需要更高级的工具,比如 tty0ttyser2netsercd(基于RFC 2217)等其他工具。请查看this帖子。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接