标签: python linux serial-port pyserial virtual-serial-port
我有两个python程序需要通过pySerial API从同一个串口读取。
根据我的理解,您不能从同一个串口读取两个程序。所以我打算做的是从物理串口读取一个python程序,然后将它从串口接收的EXACT数据复制到虚拟串口,其他python程序可以通过pySerial API读取它。
在将使用pySerial的两个python程序中,只有其中一个将回复任何内容。
任何想法如何做到这一点?
答案 0 :(得分:1)
根据您的要求,创建虚拟串口可能很简单或很复杂。
如果您只需要将数据从实际端口传播到虚拟端口(反之亦然),则可以使用socat,remserial或conserver等工具。请参阅此处的使用示例:1,2,3。
socat
remserial
conserver
这样的工具创建了一个pty(伪tty),并在两个方向上在真实端口和pty之间传输数据。但是,它们不会传播其他API,包括特定于串行端口的各种termios和ioctl()调用。
termios
ioctl()
如果还不够,您需要更多高级工具,例如tty0tty或ser2net和sercd(基于RFC 2217)等。请参阅this帖子。
tty0tty
ser2net
sercd