linux - Linux 的虚拟串行端口

我需要在 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”。

https://stackoverflow.com/questions/52187/

相关文章:

python - `sorted(list)` 与 `list.sort()` 有什么区别?

linux - 如何从容器本身获取 Docker Linux 容器信息?

python - 如何在 Python 中创建不可变对象(immutable对象)?

python - Django 数据库设置 'Improperly Configured' 错误

python - 在 Python 中使用 "continue"语句的示例?

python - Python 是解释的,还是编译的,或者两者兼而有之?

linux - 如何获取终端的字符编码

mysql - 重命名 MySQL 数据库

linux - bash中带有变量的别名

linux - 如何将第三列打印到最后一列?