QSerialPort вызывает остановку программы (бесконечный цикл?) При открытии устройства
Я хочу написать на серийном устройстве. К сожалению, у меня такое чувство, что QSerialPort неправильно реализован в Linux. В отличие от других методов (python) я получаю! Иногда! зависание программы, когда я пытаюсь позвонить:
serial.open(QIODevice::ReadWrite)
Я использую пример изhttp://qt-project.org/wiki/QtSerialPort (увидеть ниже). QSerialPortInfo работает правильно, так что я могу искать свое устройство, прежде чем открыть его. Проблема появилась во всех сериях Qt 5. *. В настоящее время я использую бета-версию 5.3 из репозитория OpenSuse. Другие инструменты или методы доказывают, что устройство работает (Windows или Python).
// Example use QSerialPortInfo
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {
qDebug() << "Name : " << info.portName();
qDebug() << "Description : " << info.description();
qDebug() << "Manufacturer: " << info.manufacturer();
// Example use QSerialPort
QSerialPort serial;
serial.setPort(info);
if (serial.open(QIODevice::ReadWrite)) // Hang of the program
serial.close();
}
Рабочий скрипт на python:
com_port = 4
baud_rate = '9600'
pySerial = serial.Serial(com_port, baud_rate)
Изменить: я тестировал с отладчиком. Кажется, проблема Qt 5 по крайней мере с Linux. Похоже, связано с блокировкой устройства.