Название: Закрытие QSerialPort при удалении физического COM из Windows Отправлено: YvenTitan от Сентябрь 09, 2019, 17:29 Здравствуйте
Можете подсказать, правильно закрывать QSerialPort при физическом отключении COM или нет? В моем случае это так: есть COM, который появляется при подключении USB-устройства; его открываю, работаю, а потом устройство могут неожиданно выдернуть. Если не вызывать close(), то порт считается после этого открытым. В принципе, можно вызвать close() и все работает, но при взгляде на алгоритм программы возникает вопрос: "Зачем закрывать порт, который отвалился?" Название: Re: Закрытие QSerialPort при удалении физического COM из Windows Отправлено: qate от Сентябрь 10, 2019, 08:44 Если выдернуть, не закрывать и записать в него данных - будет ли сигнал QSerialPort::errorOccurred и/или значение error() ?
Название: Re: Закрытие QSerialPort при удалении физического COM из Windows Отправлено: YvenTitan от Сентябрь 10, 2019, 09:41 Да, есть только сигнал QSerialPort::ResourceError
Название: Re: Закрытие QSerialPort при удалении физического COM из Windows Отправлено: qate от Сентябрь 10, 2019, 09:52 тогда если закрыть его при получении ResourceError, то выглядит все логично
Название: Re: Закрытие QSerialPort при удалении физического COM из Windows Отправлено: YvenTitan от Сентябрь 10, 2019, 10:13 Почему? Можете вкратце объяснить, что происходит при открытии и закрытии порта в классе QSerialPort или скинуть ссылки почитать про это. Документацию на QSerialPort читал - этого мало для понимания.
Название: Re: Закрытие QSerialPort при удалении физического COM из Windows Отправлено: sergek от Сентябрь 10, 2019, 11:02 Могу ошибаться, но, кажется, автор (kuzulis) говорил, что при получении ошибок в порту его необходимо переинициализировать, т.к. результат дальнейшей работы с портом непределен.
Название: Re: Закрытие QSerialPort при удалении физического COM из Windows Отправлено: qate от Сентябрь 10, 2019, 11:13 Почему? При открытии файла или порта ему назначается handle или "описание" в понятиях ОС Ошибки при работе с handle не закрывают его автоматически Очевидно, что если воткнуть обратно COM, то его нужно проинициализировать на скорость и параметры заново Сама ОС не сделает этого Название: Re: Закрытие QSerialPort при удалении физического COM из Windows Отправлено: YvenTitan от Сентябрь 10, 2019, 13:46 Спасибо
|