QSerialPort зависает при попытки закрытии порта |
Здравствуйте, гость ( Вход | Регистрация )
QSerialPort зависает при попытки закрытии порта |
IndyStar |
17.12.2014, 9:47
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 17.12.2014 Пользователь №: 4295 Спасибо сказали: 0 раз(а) Репутация: 0 |
Доброго времени суток!
ПО: Qt 5.3.2, Mingw 4.8.2, windows 7 32бит. Подключаемое устройство USB FTDI. Бага засветилась в QTBUG-41052, но решения там нет. Проблема вот в чем: Подключаем устройство, работаем с ним или вообще ни чего не делаем (разницы нет), в подключенном состоянии выдергиваем шнур. Далее пытаемся закрыть подключение. Вот тут программа и зависает. Причем если воткнуть прибор обратно, подключение закрывается, и программа снова в рабочем состоянии. Закрытие порта:
Дальше обернул
И попробовал удалить m_serial_port (reset), абсолютно тоже самое. Ловил ошибки QSerialPort::PermissionError и другие тоже. Пробовал закрывать, удалять, очищать буферы ни какого толку. Хоть на boost::asio переходи, там такого не было. Есть подозрение, что это все таки бага Qt. |
|
|
IndyStar |
17.12.2014, 10:46
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 17.12.2014 Пользователь №: 4295 Спасибо сказали: 0 раз(а) Репутация: 0 |
Решение в обработчике ошибок вызвать второй раз close.
|
|
|
IndyStar |
17.12.2014, 13:04
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 17.12.2014 Пользователь №: 4295 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ошибка все еще происходит!
Соединились. Далее кидаем в порт данные, по таймеру раз в 100 мс, получаем данные. В этот момент выдергиваем устройство. Данные по таймеру продолжают отправляться в порт (ни каких ошибок нет!). Далее жмем отключиться. Тут то и происходит вышеописанное зависание. На Qt 5.4 тоже самое. Значит нужно: Либо как-то отследить отключение. Либо что-то сбросить/очистить перед отключением. Есть варианты? |
|
|
Текстовая версия | Сейчас: 28.1.2025, 14:01 |