Вопрос

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

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

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

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

Спасибо, Энди

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top