Я использовал эту библиотеку в прошлом для Qt4, но в настоящее время я пытаюсь использовать ее в проекте, который включает в себя намного больше входящих данных. Когда я пытаюсь подключиться к правильному COM-порту в своей программе, он не показывает, какие пакеты не принимаются. Когда я использую другую терминальную программу, она показывает постоянный поток данных. После нескольких попыток подключения к COM-порту моя программа, наконец, подключается и работает правильно. Мне нужна моя программа для последовательного подключения к COM-порту при команде. Если есть кто-нибудь, у кого есть какие-то идеи о том, что может быть неправильно с моим кодом, я бы очень признателен вам за вашу помощь.Вопрос о несоответствующем подключении QtSerialport
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
void MainWindow::comportSelected()
{
// If some other serial port is open then close it.
if(serial.isOpen())
serial.close();
if(ui->comportList->currentIndex() != 0)
{
serial.setDataBits(QSerialPort::Data8);
serial.setFlowControl(QSerialPort::NoFlowControl);
serial.setBaudRate(QSerialPort::Baud115200);
serial.setParity(QSerialPort::NoParity);
serial.setPort(comPortList.at(ui->comportList->currentIndex()-1));
if(!serial.open(QIODevice::ReadWrite))
{
QMessageBox::critical(this, tr("Error"), serial.errorString());
ui->console->setEnabled(false);
}
else
{
connect((const QObject*)&serial, SIGNAL(readyRead()), this, SLOT(processPendingSerialData()));
}
}
else serial.close();
}
Я тогда читать, как:
void MainWindow::processPendingSerialData()
{
// While there are bytes in the buffer.
while(serial.bytesAvailable() > 0)
{
// Read a byte.
serial.read((char *)&ch, 1);
и т.д ...
Спасибо, сэр, что сработало. Вы джентльмен и ученый. Я использовал виртуальный com-порт, когда я переключился на жесткую линию, он работал безупречно. – awpitt13