6

我正在 MacOS 上开发 Qt5 应用程序。

我想测试我的应用程序串行端口通信。

我想使用socat但我无法打开使用 socat 创建的端口:QSerialPortInfo::availablePorts()仅列出/dev/cu-XXXXXX端口...

4

3 回答 3

2

Socat端口创建示例:

socat  pty,link=/dev/mytty,raw  tcp:192.168.254.254:2001&

在此之后,您将获得伪端口/dev/mytty

现在您可以通过QSerialPort引用此端口

serial = new QSerialPort("/dev/mytty");
于 2014-02-19T10:40:16.140 回答
1

由于符号链接,您可能会遇到麻烦。

你可以尝试这样的事情:

QFileInfo file_info("/dev/mytty");
QSerialPort* serial = nullptr;
if (file_info.isSymLink()) {
  serial = new QSerialPort(file_info.symLinkTarget());
} else {
  serial = new QSerialPort(file_info.path());
}
serial->open(QIODevice::ReadWrite);

您还可以使用这些路径构造一个 QSerialPortInfo 类,而不是直接创建端口。

于 2014-03-05T17:38:35.570 回答
0

也许这只是一个权限问题。确保运行您的应用程序的用户有权访问虚拟端口。

于 2015-09-11T19:14:22.620 回答