QSerialPort не может найти указанный путь

Я скачал программу com0com и создал 3 пары виртуальных комов. Чтобы протестировать такие сообщения, я скачал Termite, которые успешно открывают, получают, передают и закрывают каждую пару. Все идет нормально.

Однако в моем приложении QT я не могу открыть ни один из виртуальных каналов (у меня нет фактического порта, поэтому я не проверял).

Мой код:

#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:

Запуск C:\Users\socc\Documents\Qt\build-VComTest-Desktop_Qt_5_10_0_MinGW_32bit-Debug\debug\VComTest.exe...

setGeometry: невозможно установить геометрию 116x30+94+105 в QWidgetWindow/'QInputDialogClassWindow'. Результирующая геометрия: 212x90+94+105 (кадр: 8, 30, 8, 8, пользовательское поле: 0, 0, 0, 0, минимальный размер: 212x90, максимальный размер: 524287x90).

"ВКОМ1"

C:/Users/socc/Documents/Qt/build-VComTest-Desktop_Qt_5_10_0_MinGW_32bit-Debug/debug/VComTest.exe

вышел с кодом 1

Я также хотел бы знать, почему мой QInputDialog выдает эту ошибку. Но это просто бонус, не обязательный для вопроса.


person andseg    schedule 16.02.2018    source источник


Ответы (1)


Если у вас возникли проблемы с этим, откройте настройки com0com и выберите параметр Использовать класс порта для вашей пары виртуальных портов. Используйте его для обоих портов в паре.

Я до сих пор не знаю, в чем проблема, тем более, что другие терминалы без проблем открывали порт. Но это решило для меня. Если кто-то получит больше информации, не стесняйтесь публиковать ее.

person andseg    schedule 16.02.2018