我正在 MacOS 上开发 Qt5 应用程序。
我想测试我的应用程序串行端口通信。
我想使用socat但我无法打开使用 socat 创建的端口:QSerialPortInfo::availablePorts()仅列出/dev/cu-XXXXXX端口...
我正在 MacOS 上开发 Qt5 应用程序。
我想测试我的应用程序串行端口通信。
我想使用socat但我无法打开使用 socat 创建的端口:QSerialPortInfo::availablePorts()仅列出/dev/cu-XXXXXX端口...
Socat端口创建示例:
socat pty,link=/dev/mytty,raw tcp:192.168.254.254:2001&
在此之后,您将获得伪端口/dev/mytty
现在您可以通过QSerialPort引用此端口
serial = new QSerialPort("/dev/mytty");
由于符号链接,您可能会遇到麻烦。
你可以尝试这样的事情:
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 类,而不是直接创建端口。
也许这只是一个权限问题。确保运行您的应用程序的用户有权访问虚拟端口。