Соединяюсь с одной отладочной платой по com-порту. До того как открыть порт всё работает нормально. Но после начинает всё тормозить. Даже в лайн едитах в фокусе курсор не моргает. Сообщения в текстовое окно выводятся через секунд 15, хотя Debug() в консоль их выводит моментально как-только пришли данные. Тормозят нажатия на все кнопки, кроме кнопки "Закрыть соединение". Связывался со стандартным терминалом, всё работает нормально. Что это за эффект такой, подскажите пожалуйста!
Использую библиотечку qserialdevice.
Открываю и слушаю порт вот так:
void CMainWindow::initSerial()
{
serial = new AbstractSerial(this); // Новый экземпляр класса AbstractSerial
ui->cbBaud->addItems(serial->listBaudRate());
connect(this->serial, SIGNAL(readyRead()), this, SLOT(serialRecieve()));
}
void CMainWindow::serialRecieve() {
QByteArray temp_data = serial->readLine(); // Заполняем массив данными
qDebug() << "Reading data is: " << temp_data;
getText+=QString::QString (temp_data);
ui->teRecieve->setText(getText);
}
Настройка порта
serial->setDeviceName(ui->lePort->text()); // Порт, который открываем - берём из поля lePort
if (serial->open(AbstractSerial::ReadWrite))
{
ui->leStatus->setText("Port open: "+serial->deviceName());
qDebug() << "Порт " << serial->deviceName() << " открыт в режиме " << serial->openMode();
// Классная штука - устанавливать параметры порта можно после открытия
serial->setBaudRate(ui->cbBaud->currentText()); // Скорость выбираем из выпадающего списка cbBaud
serial->setDataBits(AbstractSerial::DataBits8);
serial->setParity(AbstractSerial::ParityNone);
serial->setStopBits(AbstractSerial::StopBits1);
serial->setFlowControl(AbstractSerial::FlowControlOff);
}