QT подключение и чтение serialPort
Подключаюсь к порту , читаю данные всё норм, Но есть 2 момента не приятных:
- Если происходит отключение от порта отлавливаю
SerialPortError
получаю ошибку и все, при повторном коннекте ничего не происходит, данную проблему пока решил цикломwhile
:
но окно программы тогда зависает пока не подключиться к порту, как это исправить?void MySerialPort::openDefault() { serial.setBaudRate(QSerialPort::Baud115200); serial.setDataBits(QSerialPort::Data8); serial.setParity(QSerialPort::NoParity); serial.setStopBits(QSerialPort::OneStop); serial.setFlowControl(QSerialPort::NoFlowControl); serial.setPortName("COM3"); serial.open (QIODevice::ReadOnly); } void MySerialPort::handleError(QSerialPort::SerialPortError error) { if ((serial.isOpen()) && (error == QSerialPort::DeviceNotFoundError || error == QSerialPort::PermissionError || error == QSerialPort::ResourceError)) { emit disconnected(); serial.close(); while (!serial.isOpen()) { openDefault(); } } }
- Если программа уже запущена и я во время её работы подсоединяю USB, чтение данных не происходит, как начать читать данные, после подсоединения к USB ?
Источник: Stack Overflow на русском