我已经建立了一个通过以太网的socat连接,以建立一些来自串行Uart的通信。 此设置有效...
Socat创建一个虚拟pts端口,该端口可以转换为所选的端口名。在这种情况下,我选择了/ dev / ttyV0作为名称。
socat -d -d -v pty,link=/dev/ttyV0,raw,echo=0,unlink-close,waitslave tcp:${ip_number}:54321,forever,reuseaddr
我正在努力的是任何(随机)GUI客户端(例如Cutecom)中的列表和识别。这些GUI终端仅显示了一小部分串行端口,而/ dev /
中列出了其他端口。以下是虚拟端口的权限和相应的符号链接:
$ ls -all /dev/pts/7
crw--w---- 1 root uucp 136,7 5 nov 10:55 /dev/pts/7
$ ls -all /dev/ttyV0
lrwxrwxrwx 1 root root 10 5 nov 10:55 /dev/ttyV0 -> /dev/pts/7
以下设备也出现在我的系统上,并被Cutecom识别
$ ls -all /dev/ttyS1
crw-rw---- 1 root uucp 4,65 5 nov 09:33 /dev/ttyS1
我的问题:有什么方法可以使GUI串行终端知道我的虚拟设备吗?
先谢谢了。
编辑:由于我的声誉低下,我无法添加评论...:-/
对于Cutecom:它基于QT,因此有一个功能:
https://doc.qt.io/qt-5/qserialportinfo.html#availablePorts
我对QT内核不熟悉,但我认为,如果我错了,请纠正我,这是封闭源代码。
GtkTerm: 对该终端源代码进行深入研究可以得出以下结论:
https://github.com/zdavkeos/gtkterm/blob/master/src/term_config.c#L54
将虚拟端口重命名为ttyS11,从而在gtkterm中列出了我的清单。
因此,似乎每个终端客户端都以自己的方式进行操作。 我本来希望对此达成普遍共识,但有时情况还是一样。