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

标签 python linux serial-port pyserial virtual-serial-port

我有两个 python 程序需要通过 pySerial API 从同一个串口读取数据。

据我了解,您不能让两个程序从同一个串口读取数据。所以我打算做的是让一个 python 程序从物理串行端口读取,然后让它将从串行端口接收到的精确数据复制到虚拟串行端口,其他 python 程序可以通过 pySerial API 读取它。

在将使用 pySerial 的两个 python 程序中,只有一个会以任何方式响应。

有什么办法吗?

最佳答案

根据您的要求,创建虚拟串口可能很简单也可能很复杂。

如果您只需要将数据从实际端口传播到虚拟端口(反之亦然),您可以使用像socat 这样的工具。 , remserial , 或 conserver .请在此处查看使用示例:1 , 2 , 3 .

此类工具创建一个 pty(伪 tty)并在实际端口和 pty 之间双向传输数据。但是,它们不会传播其他 API,包括特定于串行端口的各种 termiosioctl() 调用。

如果这还不够,您需要更高级的工具,例如 tty0ttyser2netsercd (基于 RFC 2217 )等。参见 this发布。

关于python - 使用 Python,如何在 Linux 上创建虚拟串口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31122141/

相关文章:

java - 在嵌入式 linux 上启动后自动在后台启动 java 应用程序

python - 如何在 Windows 上的 Python 中创建 COM 端口

当前行的 Linux shell 脚本 livecopy

linux - 使用命令行从多个 HTML 页面创建动画 gif

python - 以不同于 Python 的用户身份运行进程

python - 阿拉伯语编码-django

linux - fconfigure 拒绝将波特率设置为 921600

c - sim900 与 micro 进行回显,但不执行任何操作

python - SageMathCloud : Error: unexpected EOF while parsing

python - 如何使用 pymc3 指定伯努利分布的大小?