我想通过以太网连接将数据从两个串行端口重定向到单个端口。我已设法发送数据,但由于串行端口数据速度较慢,消息可能会损坏,因为这些消息不会以任何方式等待换行符的回车。
我用过这些命令
netcat -p 23000 -u 192.168.1.7 23000 </dev/ttyUSB1&
netcat -p 23000 -u 192.168.1.7 23000 </dev/ttyUSB0&
另一端可以接收所有数据,但如果两个端口同时接收,则线路可能会损坏。
cat /dev/ttyUSB0
显示字符是如何被一一接收的。通过以下命令,我成功地逐行打印串行数据。
while IFS='' read -r LINE || [ -n "${LINE}" ]; do echo "${LINE}"; done < /dev/ttyUSB0
但是如何才能使串行数据逐行重定向,从而使串行数据损坏的可能性不那么明显呢?
我应该替换下面的“/dev/ttyUSB0”
netcat -p 23000 -u 192.168.1.7 23000 </dev/ttyUSB0&
像这样的东西
while IFS='' read -r LINE || [ -n "${LINE}" ]; do echo "${LINE}"; done < /dev/ttyUSB0
或者也许有一些聪明的方法来处理来自两个来源的线路,以便它们不会被破坏。
编辑:我在 WiFi 路由器上使用 OpenWRT 发行版。我已经安装了 Netcat,但不确定 socat 是否可用。要处理的数据是来自两个设备的 NMEA0183 消息。我认为那些只在行的开头有一些特别的东西。