Сигнал readyRead () не выполняет слот

У меня относительно грубое устройство (два компьютера подключены через 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

0

Решение

Попробуй вот так

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);

Открыт после того, как порт настроен и сигнал подключен к слоту

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]