Russian Qt Forum
Мая 02, 2025, 16:20
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Дополнительные компоненты
>
Закрытие QSerialPort при удалении физического COM из Windows
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Закрытие QSerialPort при удалении физического COM из Windows (Прочитано 6131 раз)
YvenTitan
Самовар
Offline
Сообщений: 174
Закрытие QSerialPort при удалении физического COM из Windows
«
:
Сентября 09, 2019, 17:29 »
Здравствуйте
Можете подсказать, правильно закрывать QSerialPort при физическом отключении COM или нет?
В моем случае это так: есть COM, который появляется при подключении USB-устройства; его открываю, работаю, а потом устройство могут неожиданно выдернуть. Если не вызывать close(), то порт считается после этого открытым.
В принципе, можно вызвать close() и все работает, но при взгляде на алгоритм программы возникает вопрос: "Зачем закрывать порт, который отвалился?"
Записан
qate
Супер
Offline
Сообщений: 1177
Re: Закрытие QSerialPort при удалении физического COM из Windows
«
Ответ #1 :
Сентября 10, 2019, 08:44 »
Если выдернуть, не закрывать и записать в него данных - будет ли сигнал QSerialPort::errorOccurred и/или значение error() ?
Записан
YvenTitan
Самовар
Offline
Сообщений: 174
Re: Закрытие QSerialPort при удалении физического COM из Windows
«
Ответ #2 :
Сентября 10, 2019, 09:41 »
Да, есть только сигнал QSerialPort::ResourceError
Записан
qate
Супер
Offline
Сообщений: 1177
Re: Закрытие QSerialPort при удалении физического COM из Windows
«
Ответ #3 :
Сентября 10, 2019, 09:52 »
тогда если закрыть его при получении ResourceError, то выглядит все логично
Записан
YvenTitan
Самовар
Offline
Сообщений: 174
Re: Закрытие QSerialPort при удалении физического COM из Windows
«
Ответ #4 :
Сентября 10, 2019, 10:13 »
Почему? Можете вкратце объяснить, что происходит при открытии и закрытии порта в классе QSerialPort или скинуть ссылки почитать про это. Документацию на QSerialPort читал - этого мало для понимания.
Записан
sergek
Гипер активный житель
Offline
Сообщений: 872
Мы должны приносить пользу людям.
Re: Закрытие QSerialPort при удалении физического COM из Windows
«
Ответ #5 :
Сентября 10, 2019, 11:02 »
Могу ошибаться, но, кажется, автор (kuzulis) говорил, что при получении ошибок в порту его необходимо переинициализировать, т.к. результат дальнейшей работы с портом непределен.
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
qate
Супер
Offline
Сообщений: 1177
Re: Закрытие QSerialPort при удалении физического COM из Windows
«
Ответ #6 :
Сентября 10, 2019, 11:13 »
Цитата: YvenTitan от Сентября 10, 2019, 10:13
Почему?
При открытии файла или порта ему назначается handle или "описание" в понятиях ОС
Ошибки при работе с handle не закрывают его автоматически
Очевидно, что если воткнуть обратно COM, то его нужно проинициализировать на скорость и параметры заново
Сама ОС не сделает этого
Записан
YvenTitan
Самовар
Offline
Сообщений: 174
Re: Закрытие QSerialPort при удалении физического COM из Windows
«
Ответ #7 :
Сентября 10, 2019, 13:46 »
Спасибо
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...