2015-09-14 109 views
1

我跟着this为了创建一对串行端口。它工作正常。Qt和虚拟串行端口

现在我正在开发一个Qt应用程序(使用QtSerialPort)通过串口发送数据,而我真正想要的就是这样一个虚拟串口链接。但看起来QSerialPortInfo::availablePorts()找不到/ dev/pts/...端口。

为了在linux上制作这样的串口链接,我应该尝试哪种方法?

回答

2

由于/ dev/pts不是串行端口,SOCAT会为/ dev/pts设备创建符号链接。所以,一切正确。

但是,使用SOCAT它不是一个好主意,因为它不稳定(在我的练习中重新打开之后等等)。最好使用tty0tty项目(但不幸的是,QSerialPort :: availablePorts()并没有枚举它)。但这不是问题,因为tty0tty的串行端口可以很容易地固定为QSerialPort(需要一个小补丁)。

所以,目前没有办法列举这个简单的方法。也许在Qt 5.6中,将为QSerialPort枚举添加tty0tty。

作为解决方法,您可以在/ dev目录上使用QDir来枚举所有符号链接(当然,如果您在/ dev目录中创建此符号链接)。

+0

“不幸的是,QSerialPort :: availablePorts()不枚举它太” 意味着我甚至不能使用它呢?如果明确告诉Qt有关地址,我期望能够使用它们。我试过'cat KcFnMi

+0

“tty0tty的串行端口可以很容易地固定为QSerialPort(需要一个小补丁)”,请您告诉我更多关于此补丁的信息吗? – KcFnMi

1

我甚至不能使用它?

您可以使用任何自定义串行端口名称并将其传递给QSerialPort。

,但没有被猫侧

您可以尝试使用终端例子,这是qtserialport例子部分所示。

请您告诉我更多关于此补丁的信息吗?

https://codereview.qt-project.org/#/c/125856/