2013-03-19 111 views
1

我有一个库(PyModbus)我想使用它需要一个tty设备,因为它将与使用串行连接的设备进行通信。但是,我要与之交谈的设备将落后于支持串行over tcp的调制解调器(该设备插入调制解调器的com端口)。从串口通过TCP连接创建一个假TTY设备

没有调制解调器,它将是微不足道的。我会连接一个USB串行电缆到设备,另一端连接到电脑。在调制解调器中,服务器必须连接到调制解调器上的tcp端口,并通过该端口来提取串行数据。调制解调器将收到的数据传递给连接到com端口的设备。

在Linux中,什么是从“serial over TCP连接”创建假tty用于暂时使用然后被销毁的最佳方式。这将定期发生,并且在任何给定时间,单个linux服务器可能有10〜500个这样的模拟设备打开。

+0

使用socat我没有给你一个完整的答案,但是从标准库中的'pty'模块可能会开始寻找一个好地方。它可以让你设置一个伪tty设备,你可以从一个标准的文件描述符中提供。 – 2013-03-19 09:22:45

+0

PyModbus不支持使用TCP? – JeffS 2013-03-19 13:36:35

+0

@JeffS PyModbus可以,但TCP modbus与协议级别的串行modbus不同。所以从tcp modbus开始并将其吐出到串口设备上并不适用。但是,看起来您可以强制TCP modbus使用RTU(二进制串行modbus)帧。这可能会起作用。 – michael 2013-03-19 17:07:33

回答

1

如果我不明白,你需要做这样的连接:

[pyModbus < - (假的串) - >进程] < - (TCP/IP) - > [调制解调器< - (串行) - >设备]

我建议这个

+0

你能否建议如何使用socat将进程的标准输出重定向到虚拟串行设备? – fakedrake 2015-04-18 14:22:20