Python 通过TCP上的串行连接创建假TTY设备

Python 通过TCP上的串行连接创建假TTY设备,python,serial-port,tty,modbus,Python,Serial Port,Tty,Modbus,我有一个需要tty设备的库(PyModbus),因为它将使用串行连接与设备通信。但是,我要与之交谈的设备将位于支持tcp串行传输的调制解调器后面(该设备插入调制解调器上的com端口) 如果没有调制解调器,它将是微不足道的。我会将usb串行电缆连接到设备,另一端连接到计算机。如果调制解调器在途中,服务器必须连接到调制解调器上的tcp端口,并通过该端口传输串行数据。调制解调器将接收到的数据传送到连接到com端口的设备 在linux中,从“串行tcp连接”创建一个假的tty供暂时使用然后销毁的最佳方法

我有一个需要tty设备的库(PyModbus),因为它将使用串行连接与设备通信。但是,我要与之交谈的设备将位于支持tcp串行传输的调制解调器后面(该设备插入调制解调器上的com端口)

如果没有调制解调器,它将是微不足道的。我会将usb串行电缆连接到设备,另一端连接到计算机。如果调制解调器在途中,服务器必须连接到调制解调器上的tcp端口,并通过该端口传输串行数据。调制解调器将接收到的数据传送到连接到com端口的设备


在linux中,从“串行tcp连接”创建一个假的tty供暂时使用然后销毁的最佳方法是什么。这种情况会定期发生,单个linux服务器可能会在任何给定时间打开10~500个模拟设备。

如果我理解,您需要以以下方式进行连接:

[pyModbus进程][modemdevice]


我建议为此使用
socat

如果我理解,您需要以以下方式进行连接:

[pyModbus进程][modemdevice]


我建议使用
socat
来解决这个问题

我没有完整的答案,但是标准库中的
pty
模块可能是一个开始寻找的好地方。它将允许您设置一个伪tty设备,您可以从标准文件描述符馈送。PyModbus不支持使用TCP吗?@JeffS PyModbus支持,但TCP modbus在协议级别上不同于串行modbus。因此,从tcp modbus开始,并在串行设备上输出,并不十分有效。但是,您似乎可以强制TCP modbus使用RTU(二进制串行modbus)帧。这可能行得通。我没有完整的答案,但是标准库中的
pty
模块可能是一个开始寻找的好地方。它将允许您设置一个伪tty设备,您可以从标准文件描述符馈送。PyModbus不支持使用TCP吗?@JeffS PyModbus支持,但TCP modbus在协议级别上不同于串行modbus。因此,从tcp modbus开始,并在串行设备上输出,并不十分有效。但是,您似乎可以强制TCP modbus使用RTU(二进制串行modbus)帧。这可能行得通。您能建议如何使用socat将进程的stdout重定向到虚拟串行设备吗?您能建议如何使用socat将进程的stdout重定向到虚拟串行设备吗?