linux - Linux 的虚拟串行端口

标签 linux serial-port virtual-serial-port

我需要在 Linux 上测试一个串口应用程序,但是我的测试机只有一个串口。

有没有办法向 Linux 添加虚拟串行端口并通过 shell 或脚本模拟设备来测试我的应用程序?

注意:我无法重新映射端口,它在 ttys2 上硬编码,我需要在编写应用程序时对其进行测试。

最佳答案

补充@slonik 的回答。

您可以通过以下步骤测试 socat 以创建虚拟串行端口(在 Ubuntu 12.04 上测试):

打开一个终端(我们称之为终端 0)并执行它:

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

上面的代码返回:

2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/2
2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/3
2013/11/01 13:47:27 socat[2506] N starting data transfer loop with FDs [3,3] and [5,5]

打开另一个终端并写入(终端1):

cat < /dev/pts/2

此命令的端口名称可以根据电脑进行更改。这取决于之前的输出。

2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/**2**
2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/**3**
2013/11/01 13:47:27 socat[2506] N starting data transfer loop with FDs 

您应该使用突出显示区域中可用的数字。

打开另一个终端并写入(终端2):

echo "Test" > /dev/pts/3

现在回到 1 号航站楼,您会看到字符串“Test”。

关于linux - Linux 的虚拟串行端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52187/

相关文章:

python - Python中的虚拟串行设备?

linux - 你如何在 linux 中找到设备的主要和次要编号

javascript - node.js 串口事件在重新连接到端口后停止工作

Python多线程队列剩余 "empty"

c# - 串行端口 : Send in Bytes or Characters?

c++ - 使用 Windows USB 虚拟 Com 端口识别断开连接事件

serial-port - 通过注册表,命令行或软件更改COM端口?

linux - --proof=* 意思是shellscript

c++ - 基于带有英特尔 Vtune 放大器的挂钟时间的 C++ 程序简介

c++ - 将 std::map 作为默认参数传递