Débrancher Port com à chaud

Signaler
Messages postés
139
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
15 mars 2016
-
Messages postés
272
Date d'inscription
lundi 12 janvier 2009
Statut
Membre
Dernière intervention
30 décembre 2015
-
bonjour,

Est ce que l'un d'entre vous à une méthode pour gérer la perte d'un port com en cours d'utilisation sous vb?
Actuellement j'ai une appli qui communique en permanence via des port com (issu de convertisseur usb) Comme ils sont en usb ils sont facilement déconnectable et lorsque l'on déconnecte le module usb alors que la com est en route l'appli VB plante enfin plutot freeze sans jamais rendre la main (ceci en compilé autant qu'en IDE)

Je ne sais pas si en jouant sur les options du porte com ou autre je pourrai éviter ceci et récupérer l'erreur...?

Merci

5 réponses

Messages postés
272
Date d'inscription
lundi 12 janvier 2009
Statut
Membre
Dernière intervention
30 décembre 2015
1
Tu as un plantage dans ton soft c'est sa?

Tu as essaye avec un try/catch? (ma question peut être idiote)
Messages postés
139
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
15 mars 2016

euuh c'est moi l'idiot c'est quoi un try catch?

en fait c'est tous le soft qui plante... quand le port com "plante" ou est débranché ...
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Salut
"Try/Catch" : c'est la gestion d'erreur sous VB.Net
Toi, tu es sous VB6, ce serait "On Error Goto ..."

Si ton application freeze, c'est qu'elle tourne en boucle dans l'attente de quelque chose qui n'arrive pas.
Si tu n'a pas prévu de DoEvents dans tes boucles, tu ne dois même pas pouvoir interrompre ton programme en mode création.
Donc, première chose, ajouter un DoEvents dans la ou les boucles qui tournent autour de la récupération de données via ton port COM.
Ensuite, quand la déconnexion apparait, il te suffira de mettre le progamme en pause pour savoir dans quelle boucle il tourne.
En fonction des conditions de cette boucle, tu pourras envisager une solution.

Ton port COM est monté sur un port USB : As-tu regardé les sources du site qui parlent de détecter la connexion / déconnexion des ports USB ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
139
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
15 mars 2016

salut,

l'application ne freeze pas sur une boucle mais dès le lancement d'un mscomm.output je vais regarder du coté des connexion / deco usb ...

Merci
Messages postés
272
Date d'inscription
lundi 12 janvier 2009
Statut
Membre
Dernière intervention
30 décembre 2015
1
A ta place pour éviter ce genre de chose je te conseil se fair un time qui scan en continu le nombre de port com que tu as present dans ta machine

My.Computer.Ports.SerialPortNames.Count il y a sa en VBNET mais je sais pas si c'est la bonne methode