Отключенное устройство Qt QSerialport не закрыто - PullRequest
0 голосов
/ 28 октября 2018

QSerialPort не удается закрыть отключенное устройство в системе rasbian.любой способ закрыть и заново подключить порт.Этот код работает, но я быстро отключить и подключить его не работает.я думаю, что последовательный не ломается, когда подключен штекер:

    serial->close();
    serial = new QSerialPort(this);
    serial->setPortName("/dev/ttyUSB0");
    serial->setBaudRate(QSerialPort::Baud115200);
    serial->setDataBits(QSerialPort::Data8);
    serial->setParity(QSerialPort::NoParity);
    serial->setStopBits(QSerialPort::OneStop);
    serial->setFlowControl(QSerialPort::NoFlowControl);
    if(serial->open(QIODevice::ReadWrite)){
        qDebug() << "Hata yok";
    }
    else {
        qDebug() << "Hata var";
    }

1 Ответ

0 голосов
/ 28 октября 2018

При отключении может испускать error SIGNAL, поэтому подключите error SIGNAL к SLOT чтобы справиться с этим, как показано ниже:

QObject::connect(serial, SIGNAL(error(QSerialPort::SerialPortError)), this,
                 SLOT(handleError(QSerialPort::SerialPortError)));

void Widget::handleError(QSerialPort::SerialPortError error)
{
    if (error == QSerialPort::ResourceError)
    {
        QMessageBox::critical(this, tr("Critical Error"), serial->errorString());
        serial->close();
    }
}
...