我有两个 python 程序需要通过 pySerial API 从同一个串口读取数据。
据我了解,您不能让两个程序从同一个串口读取数据。所以我打算做的是让一个 python 程序从物理串行端口读取,然后让它将从串行端口接收到的精确数据复制到虚拟串行端口,其他 python 程序可以通过 pySerial API 读取它。
在将使用 pySerial 的两个 python 程序中,只有一个会以任何方式响应。
有什么办法吗?
最佳答案
根据您的要求,创建虚拟串口可能很简单也可能很复杂。
如果您只需要将数据从实际端口传播到虚拟端口(反之亦然),您可以使用像socat
这样的工具。 , remserial
, 或 conserver
.请在此处查看使用示例:1 , 2 , 3 .
此类工具创建一个 pty(伪 tty)并在实际端口和 pty 之间双向传输数据。但是,它们不会传播其他 API,包括特定于串行端口的各种 termios
和 ioctl()
调用。
如果这还不够,您需要更高级的工具,例如 tty0tty
或 ser2net
和 sercd
(基于 RFC 2217 )等。参见 this发布。
关于python - 使用 Python,如何在 Linux 上创建虚拟串口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31122141/