通过网络桥接串口

Bridge Serial-Ports over network

对于使用串行端口进行通信(确切地说是 Modbus RTU)的应用程序,我需要通过网络桥接串行端口以进行测试。

所以我想进行以下设置:

Device        |     Network      |      PC

SerialPort    |------------------|    SerialPort
Map Serialport|                  | Map network to Serialport
   to Network |                  |   

我已经使用 socat 完成了第一部分。

我用

在 PC 上打开了 TCP 端口
nc -l 8080

在我的设备上,我使用了

socat  pty,link=/dev/virtualcom0 tcp:PC-IP:8080

将写在 /dev/virtualcom0 上的所有内容映射到端口 8080 上的 PC-IP。

但现在我无法将套接字映射回串行端口。

socat tcp:PC-IP:9123 pty,link=/dev/virtualport0

这让我得到了 Connection Refused,这很明显,因为我使用了 TCP 并且端口已被设备使用。
所以我尝试了

socat  pty,link=/dev/virtualcom0,raw  udp:PC-IP:8080

并将其他所有内容也更改为 UDP。

但是我的 /dev/virtlalcom0/ 电脑上什么也没有收到。

tcp 连接的一侧需要监听端口(您启动的第一个),第二侧连接到它。

第一面做:

socat tcp-listen:8080 pty,link=/dev/virtualport0

对于第二面做:

socat pty,link=/dev/virtualcom0 tcp:IP-of-other-machine:8080

忘记 netcat,你不需要它。