2008-12-31 16 views
2

Je travaille sur une application qui parle à un port série, et sur ma machine de développement, je cours Vista, et ce port série est une connexion Bluetooth. Parfois, le port série est pris dans un état où mon application ne peut plus s'y connecter. En .net, je reçois une IOException avec un message indiquant "Element not found."Port série verrouillé sur Vista

J'ai essayé de redémarrer l'application, en me connectant avec d'autres applications (un client de communication comme HyperTerm) mais rien n'y fait. Je ne trouve aucun message d'erreur plus spécifique et rien n'est consigné dans les journaux d'événements de la machine. Le gestionnaire de périphériques me dit que le port "fonctionne correctement".

Y at-il un moyen de savoir quel processus et ou .dll possède un port série, et/ou forcer un port fermé?

Si cela fait une différence, mon App est en C#, mais structurellement, il n'est pas pratique d'ouvrir et de fermer le port avec une instruction "using".

Merci, Andy

Répondre

2

Au meilleur de ma connaissance, vous ne pouvez pas fermer un port série que vous n'avez pas la poignée. Mon expérience des ports série Bluetooth est qu'ils peuvent finir par être mappés à différents numéros de port COM au moment de la connexion, et peuvent parfois laisser des ports COM bidon lorsqu'ils sont déconnectés. Par exemple, je n'ai actuellement aucun périphérique bluetooth connecté, mais si je vais dans le gestionnaire de périphériques, je vois un total de onze ports COM répertoriés comme Port série Bluetooth Les propriétés de chacun de ces ports montrent le périphérique comme fonctionnant et disponible, et Je peux habituellement ouvrir ces ports bien que j'obtiens des échecs occasionnels. Mon travail pour cela est de forcer les numéros de port COM pour connecté, par propriétés/avancé/numéro de port COM. Je ne suis pas sûr si le problème est lié au pilote (corp IVT dans ce cas) ou un problème avec la façon dont Windows gère les ports série blutooth.

Désolé je ne pourrais pas être de plus d'aide.