Pergunta

Eu estou trabalhando em um aplicativo que fala com uma porta serial, e em minha máquina de desenvolvimento, estou rodando o Vista, e que porta serial é uma conexão Bluetooth. Ocasionalmente, a porta serial é pego em um estado onde o meu App já não pode se conectar a ele. Em .net eu recebo um IOException com a mensagem "Elemento não encontrado".

Eu tentei reiniciar o aplicativo, conectar-se com outros aplicativos (a cliente de comunicações como o HyperTerminal), mas nada ajuda. Não consigo encontrar qualquer mensagem de erro mais específica, e nada é registrado em logs de eventos da máquina. O gerenciador de dispositivo diz-me que a porta está "funcionando corretamente".

Existe alguma maneira de descobrir qual processo e ou .dll tem a posse de uma porta serial e / ou forçar uma porta fechada?

Se faz alguma diferença, meu App está em C #, mas estruturalmente, não é conveniente para abrir e fechar a porta com uma instrução "usando".

Obrigado, Andy

Foi útil?

Solução

Para o melhor de meu conhecimento que você pode não fechar uma porta serial que você não tem a alça para. Minha experiência de portas seriais Bluetooth é que eles podem acabar ficando mapeada para diferentes números de porta COM no momento da conexão, e às vezes pode deixar falso COM portas quando desconectado. Por exemplo, eu tenho atualmente nenhum dispositivo Bluetooth ligado, mas se eu entrar em gerenciador de dispositivos, vejo um total de onze portas COM listados como porta serial Bluetooth As propriedades de cada uma dessas portas mostrar o dispositivo como trabalhando e disponíveis, e geralmente eu posso abrir essas portas que eu conseguir falhas ocasionais. Meu trabalho ao redor para isso é forçar números de porta COM para conectado deviced, através de propriedades / avançado número de porta / COM . Eu não tenho certeza se o problema está relacionado motorista (corp IVT neste caso) ou um problema com a forma como o Windows gerencia blutooth portas seriais.

Desculpe eu não poderia ser de mais ajuda.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top