仅将整行从串行端口重定向到 netcat

仅将整行从串行端口重定向到 netcat

我想通过以太网连接将数据从两个串行端口重定向到单个端口。我已设法发送数据,但由于串行端口数据速度较慢,消息可能会损坏,因为这些消息不会以任何方式等待换行符的回车。

我用过这些命令

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 消息。我认为那些只在行的开头有一些特别的东西。

相关内容