IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Téléchargé 9 fois
Vote des utilisateurs
0 
0 
Détails
Licence : Non renseignée
Mise en ligne le 14 novembre 2010
Langue : Français
Référencé dans
Navigation

Utilitaire pour pilotage du port série

Un exemple d'utilisation du contrôle MSCOMM.
Avatar de Original Prankster
Membre habitué https://www.developpez.com
Le 04/10/2006 à 20:18
Hello,

Je développe une petite appli en VB6 dans laquelle je veux dialoguer avec une carte électronique par le biais du port RS232.

Je cherche à lancer l'appli avec un port par défaut (COM1) et laisser la possibilité à l'utilisateur de paramétrer l'appli en choisissant justement le port à utiliser dans une fenêtre de config adéquate.

Mon PC ne connait que les ports COM3 et COM13 (émulation USB) et me génère donc une erreur à l'exécution : "Numéro de port invalide", en cherchant le port par défaut càd le port COM1.

Y a t-il un moyen justement pour ignorer cette erreur tant que l'utilisateur n'a pas choisi un port valide ?

Merci d'avance !
Avatar de ProgElecT
Expert éminent sénior https://www.developpez.com
Le 05/10/2006 à 7:27
N'ayant jamais eu de problème avec ce petit utilitaire, s’il fonctionne correctement pour vous,
il vous suffirait de rechercher la différence de gestion par apport a votre programme.
PilotPortCom.zip (44.6Ko)

Motif de l'edit
Nouvelle version, posibilité de teste en emission et reception, plus des petites améliorations (traitement d'erreur avec informations).
Avatar de Original Prankster
Membre habitué https://www.developpez.com
Le 05/10/2006 à 22:30
Merci énormément, cette appli est fort sympathique !
Code : Sélectionner tout
On Error resume Next
Code : Sélectionner tout
1
2
DoEvents
If Err.Number = 0
C'est ce qu'il me fallait... : pouvoir récupérer l'erreur. Je vois que c'est assez simple

Merci encore, et bonne nuit.
Avatar de Original Prankster
Membre habitué https://www.developpez.com
Le 06/10/2006 à 0:11
J'ai cependant, semblerait-il, un petit problème...

Pourquoi mon gestionnaire d'erreur ne fonctionne pas ?
Code : Sélectionner tout
1
2
3
4
' Connexion port série
On Error GoTo 0
MSComm1.CommPort = PortCom ' Port paramétré
MSComm1.PortOpen = True: DoEvents ' Ouverture du port
L'appli me plante toujours sur l'ouverture du port (erreur 8002 : numéro de port non valide).

Or, je viens de lire dans un tuto :
On Error GoTo 0 : L'erreur est neutralisée et le gestionnaire d' erreurs est contourné dans la procédure.
Y a-t-il des concepts qui m'auraient échappé ?
Avatar de SfJ5Rpw8
Expert éminent sénior https://www.developpez.com
Le 06/10/2006 à 7:37
tiens peu être que l'explication est plus clair dans l'aide en ligne :


On Error GoTo 0 Invalide dans la procédure en cours tout gestionnaire d'erreurs validé.
en fait On Erro Goto 0 , te permet de mettre fin à la gestion d'erreur précédemment activé par un
Code : Sélectionner tout
On Error goto line
ou un
Code : Sélectionner tout
On Error resume next
je ne sais pas comment est organisé ton code mais tu pourrai faire un truc du genre :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
Sub MaSub
  On Error Goto ErrPort
MSComm1.CommPort = PortCom ' Port paramétré
MSComm1.PortOpen = True: DoEvents ' Ouverture du port
On Error Goto 0 'Fin gestion d'erreur

...
 ... le reste de ton code.. faut voir..?
 Exit sub 'Pour ne pas passer dans le code gestion d'erreur
ErrPort:
 MsgBox "Ouverture port impossible.."
end sub
tu peu aussi traiter le numéro d'erreur (voir Err.Number) pour personnaliser ton message...
Avatar de Delbeke
Membre expert https://www.developpez.com
Le 06/10/2006 à 7:37
Oui, le on error goto 0 signifie qu'ilfaut arreter de pieger les erreurs.
Pour pieger les erreurs tu fais plutot un on error goto Etiquette ou on error resume next:
Code : Sélectionner tout
1
2
3
4
  On error Resume next
  x=x/0  'ca normalement ca genere une erreur, vb ne sachant pas diviser par zero
  on error goto 0
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
  On error Goto ErreurDivision
  x=x/0
  On error goto 0
  exit sub

ErreurDivision:
  Msgbox "Erreur N° " & err.number & vbCrLf & err.description
  Resume Next    'reprendre l'execution a la ligne suivant
  ' Resume         'le Resume seul demande de ré-excécuter la ligne en erreur
Avatar de Original Prankster
Membre habitué https://www.developpez.com
Le 07/10/2006 à 12:40
Merci à vous 2 pour ces brillantes explications. Effectivement ça marche beaucoup mieux désormais.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.