linux - socat 两个串口在一起

标签 linux unix socat

我正在编写 JUnit 测试来测试我的应用程序。该应用程序是用 Java 编写的,并使用 purejavacomm 库。为了测试串行解析器,我想设置一个虚拟串行端口,以便测试可以与解析器通信。除了简单解析外,它还会在串行端口可用时动态连接到串行端口,所以我不想使用,比如 PipedInputStream

此库仅查找以 ttySttyUSBttyACM 开头的设备文件。因此,我无法执行常规操作(这会在 /dev/pts/x 中生成串行端口):

socat -d -d pty,raw,echo=0 pty,raw,echo=0

我试过:

socat /dev/ttyS20 /dev/ttyS21

但它不起作用。它不会退出,也不会打印错误。我尝试使用屏幕连接到 /dev/ttyS20,但它只是说,[screen is terminating]

我查看了 ttyS20(和 21)的用户权限,它们都有组,dialout(用户:root),我的用户在(克里斯)。

我是否忽略了一些权限?有没有更好的方法来一起完成这一切?

最佳答案

然后我建议在您的主目录中创建一个 dev 文件夹并将链接指向那里。

socat pty,raw,echo=0,link=/home/user/dev/ttyS20 pty,raw,echo=0,link=/home/user/dev/ttyS21

你应该可以在没有 root 的情况下访问它。如果是单向通信,我通常喜欢添加 -u 选项。

关于linux - socat 两个串口在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33811013/

相关文章:

linux - 如何使用 NGINX 自动将 HTTP 重定向到 HTTPS?

regex - 如何构建正则表达式来解析逗号分隔值但忽略双引号中的逗号?

java - 无法从 abc.jar 加载主类 list 属性

python - 无法使用 python 和 pyserial 打开/dev/ttyusb0

c - 如何在 argc 和 argv 中分配字符串

linux - Ubuntu 16.04 上的网络模拟器 (Netem)

c - 使用管道读取和执行操作

qt - 用 Qt 打开 SOCAT 创建的虚拟串口

proxy - 本地绕过 HTTP 基本身份验证

macos - OS X Mountain Lion 上的 Homebrew socat,sctp "Protocol not supported"