Заблокированный последовательный порт в Vista - PullRequest
2 голосов
/ 31 декабря 2008

Я работаю над приложением, которое взаимодействует с последовательным портом, а на моей машине для разработки я использую Vista, и этот последовательный порт представляет собой соединение Bluetooth. Иногда последовательный порт попадает в состояние, когда мое приложение больше не может подключиться к нему. В .net я получаю IOException с сообщением «Элемент не найден».

Я попытался перезапустить приложение, подключиться к другим приложениям (клиент связи, например, HyperTerm), но ничего не помогло. Я не могу найти более конкретного сообщения об ошибке, и в журналах событий машины ничего не записывается. Диспетчер устройств сообщает, что порт «работает нормально».

Есть ли способ узнать, какой процесс и / или .dll обладает последовательным портом, и / или принудительно закрыть порт?

Если это имеет какое-то значение, мое приложение находится на C #, но структурно не удобно открывать и закрывать порт с помощью оператора "using".

Спасибо, Andy

1 Ответ

2 голосов
/ 31 декабря 2008

Насколько мне известно, вы не можете закрыть последовательный порт, к которому у вас нет дескриптора. Мой опыт работы с последовательными портами Bluetooth заключается в том, что они могут подключаться к разным номерам COM-портов во время соединения и иногда могут оставлять фиктивные COM-порты при отключении. Например, в настоящее время у меня нет подключенных устройств Bluetooth, но если я захожу в диспетчер устройств, я вижу в общей сложности одиннадцать COM-портов, перечисленных как Последовательный порт Bluetooth Свойства на каждом из этих портов показывают, что устройство работает и доступны, и я обычно могу открыть эти порты, хотя я иногда получаю сбои. Моя работа заключается в том, чтобы форсировать номера COM-портов для подключенных устройств через properties / advanced / COM-номер порта . Я не уверен, связана ли проблема с драйвером (в данном случае с IVT corp) или с тем, как Windows управляет последовательными портами blutooth.

Извините, я больше не могу помочь.

...