Pregunta

Estoy trabajando en una aplicación que se comunica con un puerto serie, y en mi máquina de desarrollo, estoy ejecutando Vista, y ese puerto serie es una conexión Bluetooth. Ocasionalmente, el puerto serie queda atrapado en un estado en el que mi aplicación ya no puede conectarse. En .net obtengo una IOException con un mensaje que dice "Elemento no encontrado".

He intentado reiniciar la aplicación y conectarme con otras aplicaciones (un cliente de comunicaciones como HyperTerm) pero nada ayuda. No puedo encontrar ningún mensaje de error más específico y no se registra nada en los registros de eventos de la máquina. El administrador de dispositivos me dice que el puerto está "funcionando correctamente".

¿Hay alguna manera de averiguar qué proceso o .dll posee un puerto serie y / o forzar el cierre de un puerto?

Si hay alguna diferencia, mi aplicación está en C #, pero estructuralmente, no es conveniente abrir y cerrar el puerto con un " usando " declaración.

Gracias   Andy

¿Fue útil?

Solución

Que yo sepa, no puede cerrar un puerto serie para el que no tiene el controlador. Mi experiencia con los puertos serie Bluetooth es que pueden terminar siendo asignados a diferentes números de puertos COM en el momento de la conexión, y en ocasiones pueden dejar puertos COM falsos cuando se desconectan. Por ejemplo, actualmente no tengo dispositivos Bluetooth conectados, pero si entro en el administrador de dispositivos, veo un total de once puertos COM listados como puerto serie Bluetooth . Las propiedades en cada uno de estos puertos muestran el dispositivo como funciona y está disponible, y generalmente puedo abrir estos puertos, aunque tengo fallas ocasionales. Mi solución para esto es forzar números de puerto COM para dispositivos conectados, a través de properties / advanced / COM port number . No estoy seguro de si el problema está relacionado con el controlador (IVT corp en este caso) o un problema con la forma en que Windows administra los puertos seriales de blutooth.

Lo siento, no podría haberte ayudado más.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top