QSerialPort 找不到指定的路径
QSerialPort cannot find the path specified
我下载了程序 com0com 并创建了 3 对虚拟 com。为了测试这样的通信,我下载了 Termite,它成功地打开、接收、传输和关闭每一对。到目前为止一切顺利。
但是,在我的 QT 应用程序中,我无法打开任何虚拟 com(我没有实际端口,所以我没有测试)。
我的代码:
#include <QSerialPort>
#include <QMessageBox>
#include <QInputDialog>
#include <QSerialPortInfo>
#include <QDebug>
ui->setupUi(this);
QSerialPort *serial = new QSerialPort(this);
QString port;
QStringList ListaDePortas;
QList<QSerialPortInfo> AllPorts(QSerialPortInfo::availablePorts());
bool ok;
if((AllPorts.isEmpty()))
{
QMessageBox::critical(this,"Erro","Nenhuma porta serial encontrada!");
exit(1);
}
for(int i=0;i<AllPorts.size();i++)
ListaDePortas.push_back(AllPorts[i].portName());
port = QInputDialog::getItem(this, "Porta Serial",
"Escolha uma porta serial para conectar:", ListaDePortas, 0, false, &ok);
if(!ok)
{
QMessageBox::warning(this,"Atenção","Nenhuma porta serial selecionada. O funcionamento do programa "
"depende da conexão serial.");
exit(1);
}
serial->setPortName(port);
qDebug() << serial->portName();
if(!serial->open(QIODevice::ReadWrite))
{
QMessageBox::critical(this,"Erro",serial->errorString());
exit(1);
}
qDebug() << "Porta conectada!";
serial->write("Test\r");
serial->flush();
serial->close();
exit(0);
我收到的错误消息是葡萄牙语的(即使我的 QT 是英语的)。它转换为 system cannot find the path specified
.
关于可能导致此问题的任何线索?提前致谢!
编辑 1 - 奖金:
这是我的 Application Output
:
Starting
C:\Users\socc\Documents\Qt\build-VComTest-Desktop_Qt_5_10_0_MinGW_32bit-Debug\debug\VComTest.exe...
setGeometry: Unable to set geometry 116x30+94+105 on QWidgetWindow/'QInputDialogClassWindow'. Resulting geometry: 212x90+94+105 (frame: 8, 30, 8, 8, custom margin: 0, 0, 0, 0, minimum size: 212x90, maximum size: 524287x90).
"VCOM1"
C:/Users/socc/Documents/Qt/build-VComTest-Desktop_Qt_5_10_0_MinGW_32bit-Debug/debug/VComTest.exe
exited with code 1
我还想知道为什么我的 QInputDialog
会产生该错误。但这只是加分项,不是做题所必需的。
对于遇到此问题的任何人,请打开 com0com
安装程序,现在,select 在您的虚拟机上 使用端口 Class 选项端口对。将它用于成对的两个端口。
我仍然不知道为什么会这样,特别是因为其他终端打开端口没有问题。但这为我解决了。如果有人获得更多信息,请随时 post 它。
我下载了程序 com0com 并创建了 3 对虚拟 com。为了测试这样的通信,我下载了 Termite,它成功地打开、接收、传输和关闭每一对。到目前为止一切顺利。
但是,在我的 QT 应用程序中,我无法打开任何虚拟 com(我没有实际端口,所以我没有测试)。
我的代码:
#include <QSerialPort>
#include <QMessageBox>
#include <QInputDialog>
#include <QSerialPortInfo>
#include <QDebug>
ui->setupUi(this);
QSerialPort *serial = new QSerialPort(this);
QString port;
QStringList ListaDePortas;
QList<QSerialPortInfo> AllPorts(QSerialPortInfo::availablePorts());
bool ok;
if((AllPorts.isEmpty()))
{
QMessageBox::critical(this,"Erro","Nenhuma porta serial encontrada!");
exit(1);
}
for(int i=0;i<AllPorts.size();i++)
ListaDePortas.push_back(AllPorts[i].portName());
port = QInputDialog::getItem(this, "Porta Serial",
"Escolha uma porta serial para conectar:", ListaDePortas, 0, false, &ok);
if(!ok)
{
QMessageBox::warning(this,"Atenção","Nenhuma porta serial selecionada. O funcionamento do programa "
"depende da conexão serial.");
exit(1);
}
serial->setPortName(port);
qDebug() << serial->portName();
if(!serial->open(QIODevice::ReadWrite))
{
QMessageBox::critical(this,"Erro",serial->errorString());
exit(1);
}
qDebug() << "Porta conectada!";
serial->write("Test\r");
serial->flush();
serial->close();
exit(0);
我收到的错误消息是葡萄牙语的(即使我的 QT 是英语的)。它转换为 system cannot find the path specified
.
关于可能导致此问题的任何线索?提前致谢!
编辑 1 - 奖金:
这是我的 Application Output
:
Starting C:\Users\socc\Documents\Qt\build-VComTest-Desktop_Qt_5_10_0_MinGW_32bit-Debug\debug\VComTest.exe...
setGeometry: Unable to set geometry 116x30+94+105 on QWidgetWindow/'QInputDialogClassWindow'. Resulting geometry: 212x90+94+105 (frame: 8, 30, 8, 8, custom margin: 0, 0, 0, 0, minimum size: 212x90, maximum size: 524287x90).
"VCOM1"
C:/Users/socc/Documents/Qt/build-VComTest-Desktop_Qt_5_10_0_MinGW_32bit-Debug/debug/VComTest.exe
exited with code 1
我还想知道为什么我的 QInputDialog
会产生该错误。但这只是加分项,不是做题所必需的。
对于遇到此问题的任何人,请打开 com0com
安装程序,现在,select 在您的虚拟机上 使用端口 Class 选项端口对。将它用于成对的两个端口。
我仍然不知道为什么会这样,特别是因为其他终端打开端口没有问题。但这为我解决了。如果有人获得更多信息,请随时 post 它。