У меня относительно грубое устройство (два компьютера подключены через COM-порт), и я должен заставить его работать QSerialPort
, Идея проста: данные будут отправляться с одного компьютера на другой через COM-порт.
Передатчик работает нормально, что было проверено сторонним программным обеспечением, у меня проблемы с получением данных. Я делаю это QSerialPort
следующее:
Сначала я настроил порт:
QSerialPort *serialport = new QSerialPort();
serialport->open(QIODevice::ReadOnly);
serialport->setPortName("COM1");
serialport->setBaudRate(QSerialPort::Baud19200);
serialport->setDataBits(QSerialPort::Data8);
serialport->setParity(QSerialPort::NoParity);
а затем я готовлюсь к получению данных, как это:
connect(serialport,SIGNAL(readyRead()),this, SLOT(change_gear()) );
и в слоте change_gear у меня пока ничего больше нет:
QDebug ()<<«Данные получены»,
но этот слот никогда не был выполнен!
Итак, я просто не могу понять, что здесь происходит и почему я не могу читать данные с COM-порта таким простым способом …
ОС — Windows 8,
Qt 5.8.0 MinGW 32
Попробуй вот так
QSerialPort *serialport = new QSerialPort();
serialport->setPortName("COM1");
serialport->setBaudRate(QSerialPort::Baud19200);
serialport->setDataBits(QSerialPort::Data8);
serialport->setParity(QSerialPort::NoParity);
connect(serialport,SIGNAL(readyRead()),this, SLOT(change_gear()) );
serialport->open(QIODevice::ReadOnly);
Открыт после того, как порт настроен и сигнал подключен к слоту
Других решений пока нет …