Utilitaire pour pilotage du port série

Présentation
Un exemple d'utilisation du contrôle MSCOMM.
Téléchargement
0  0 
Téléchargé 29 fois Voir les 7 commentaires
Détails
Catégories : Communication
Avatar de Francis MILLET
Rédacteur / Modérateur
Voir tous les téléchargements de l'auteur
Licence : Non renseignée
Date de mise en ligne : 14 novembre 2010




Avatar de Original Prankster 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 ProgElecT - Rédacteur/Modérateur 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 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 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 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 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 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.