Bonjours à toutes est à tous.
Ba voilà, j'ai une question toute simple. J'ai un bout de programme (ci
dessous) qui ouvre un prot série de mon Pc pour attendre des données sur un
réseau ModBus. Dans ce bout de code, je gére les erreurs. Par exemple si le
port désigné par l'utilisateur n'existe pas, ou s'il est déja occupé, il
renvoie un message d'erreur. C'est à dire qu'après avoir tenté de l'ouvrir,
il le programme s'apperçois qu'il ne peut ouvrir le port demandé donc il
balance unb erreur. Ce que j'aimerais savoir : est-il possible de vérifier
l'existence du port avant même de tenter de l'ouvrir ???? Autrement dis, si
l'utilisateur demande d'ouvrir le Port série N° 9, alors que j'en ais que 2
sur mon Pc, le programme ne tente même pas de l'ouvrir et balance
automatiquement un message d'erreur.
Merci à tous ceux est celles qui prendront la peine de ma répondre.
Merci d'avance...
'------------------ MON PROGRAMME -----------------------
' Initialisation du composant Active X : MSComm
Public Function InitCommunication(Vitesse As Long, Parite As String,
BitDonnees As Integer, BitStop As String) As Boolean
'Retourne True si connexion ouverte
Dim MyParamConnexion As String
' Ouvre le port si fermé
If MSComm1.PortOpen = False Then
' Définit la propriété InputMode pour la lecture de données binaires
MSComm1.InputMode = comInputModeBinary
' Définit qu'il n'y a pas de protocole matériel
MSComm1.Handshaking = comNone
' Définit les paramètres de connexion
MSComm1.Settings = MyParamConnexion
' Définit le port
MSComm1.CommPort = MyVoie
' Ouvre le port
MSComm1.PortOpen = True
End If
' Lancement du Timer
Timer1 = True
InitCommunication = True
On Error GoTo 0
Exit Function
InitCommunicationErr:
Timer1 = False
Debug.Print "Erreur "; Err.Number & " - " & Err.Description & " dans
InitCommunication"
MsgBox "Le port COM" & MyVoie & " n'est pas disponible.", vbCritical,
"Initcommunication"
On Error GoTo 0
InitCommunication = False
Unload Me
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gloops
Salut,
Regarde si tu trouves ton bonheur là : http://www.mentalis.org/apilist/EnumPorts.shtml
Un exemple tout près est disponible avec la version téléchargeable, mais je ne l'ai pas vu en ligne, si tu veux je te l'envoie. Peut-être que tout simplement j'ai mal cherché.
A ce que j'ai vu on a le même type pour tous les ports locaux, qu'ils soient parallèles ou en série, mais si l'intitulé de chaque port série commence par "COM", ça doit permettre de les compter.
___________________________________ hken a écrit, le 04/11/2005 16:33 :
Bonjours à toutes est à tous. Ba voilà, j'ai une question toute simple. J'ai un bout de programme (ci dessous) qui ouvre un prot série de mon Pc pour attendre des données sur un réseau ModBus. Dans ce bout de code, je gére les erreurs. Par exemple si le port désigné par l'utilisateur n'existe pas, ou s'il est déja occupé, il renvoie un message d'erreur. C'est à dire qu'après avoir tenté de l'ouvrir, il le programme s'apperçois qu'il ne peut ouvrir le port demandé donc il balance unb erreur. Ce que j'aimerais savoir : est-il possible de vérifier l'existence du port avant même de tenter de l'ouvrir ???? Autrement dis, si l'utilisateur demande d'ouvrir le Port série N° 9, alors que j'en ais que 2 sur mon Pc, le programme ne tente même pas de l'ouvrir et balance automatiquement un message d'erreur.
Merci à tous ceux est celles qui prendront la peine de ma répondre. Merci d'avance...
'------------------ MON PROGRAMME ----------------------- ' Initialisation du composant Active X : MSComm Public Function InitCommunication(Vitesse As Long, Parite As String, BitDonnees As Integer, BitStop As String) As Boolean 'Retourne True si connexion ouverte Dim MyParamConnexion As String
' Ouvre le port si fermé If MSComm1.PortOpen = False Then ' Définit la propriété InputMode pour la lecture de données binaires MSComm1.InputMode = comInputModeBinary
' Définit qu'il n'y a pas de protocole matériel MSComm1.Handshaking = comNone
' Définit les paramètres de connexion MSComm1.Settings = MyParamConnexion
' Définit le port MSComm1.CommPort = MyVoie
' Ouvre le port MSComm1.PortOpen = True
End If ' Lancement du Timer Timer1 = True InitCommunication = True On Error GoTo 0 Exit Function
InitCommunicationErr: Timer1 = False Debug.Print "Erreur "; Err.Number & " - " & Err.Description & " dans InitCommunication" MsgBox "Le port COM" & MyVoie & " n'est pas disponible.", vbCritical, "Initcommunication"
On Error GoTo 0 InitCommunication = False Unload Me
End Function
Salut,
Regarde si tu trouves ton bonheur là :
http://www.mentalis.org/apilist/EnumPorts.shtml
Un exemple tout près est disponible avec la version téléchargeable, mais
je ne l'ai pas vu en ligne, si tu veux je te l'envoie. Peut-être que
tout simplement j'ai mal cherché.
A ce que j'ai vu on a le même type pour tous les ports locaux, qu'ils
soient parallèles ou en série, mais si l'intitulé de chaque port série
commence par "COM", ça doit permettre de les compter.
___________________________________
hken a écrit, le 04/11/2005 16:33 :
Bonjours à toutes est à tous.
Ba voilà, j'ai une question toute simple. J'ai un bout de programme (ci
dessous) qui ouvre un prot série de mon Pc pour attendre des données sur un
réseau ModBus. Dans ce bout de code, je gére les erreurs. Par exemple si le
port désigné par l'utilisateur n'existe pas, ou s'il est déja occupé, il
renvoie un message d'erreur. C'est à dire qu'après avoir tenté de l'ouvrir,
il le programme s'apperçois qu'il ne peut ouvrir le port demandé donc il
balance unb erreur. Ce que j'aimerais savoir : est-il possible de vérifier
l'existence du port avant même de tenter de l'ouvrir ???? Autrement dis, si
l'utilisateur demande d'ouvrir le Port série N° 9, alors que j'en ais que 2
sur mon Pc, le programme ne tente même pas de l'ouvrir et balance
automatiquement un message d'erreur.
Merci à tous ceux est celles qui prendront la peine de ma répondre.
Merci d'avance...
'------------------ MON PROGRAMME -----------------------
' Initialisation du composant Active X : MSComm
Public Function InitCommunication(Vitesse As Long, Parite As String,
BitDonnees As Integer, BitStop As String) As Boolean
'Retourne True si connexion ouverte
Dim MyParamConnexion As String
' Ouvre le port si fermé
If MSComm1.PortOpen = False Then
' Définit la propriété InputMode pour la lecture de données binaires
MSComm1.InputMode = comInputModeBinary
' Définit qu'il n'y a pas de protocole matériel
MSComm1.Handshaking = comNone
' Définit les paramètres de connexion
MSComm1.Settings = MyParamConnexion
' Définit le port
MSComm1.CommPort = MyVoie
' Ouvre le port
MSComm1.PortOpen = True
End If
' Lancement du Timer
Timer1 = True
InitCommunication = True
On Error GoTo 0
Exit Function
InitCommunicationErr:
Timer1 = False
Debug.Print "Erreur "; Err.Number & " - " & Err.Description & " dans
InitCommunication"
MsgBox "Le port COM" & MyVoie & " n'est pas disponible.", vbCritical,
"Initcommunication"
On Error GoTo 0
InitCommunication = False
Unload Me
Regarde si tu trouves ton bonheur là : http://www.mentalis.org/apilist/EnumPorts.shtml
Un exemple tout près est disponible avec la version téléchargeable, mais je ne l'ai pas vu en ligne, si tu veux je te l'envoie. Peut-être que tout simplement j'ai mal cherché.
A ce que j'ai vu on a le même type pour tous les ports locaux, qu'ils soient parallèles ou en série, mais si l'intitulé de chaque port série commence par "COM", ça doit permettre de les compter.
___________________________________ hken a écrit, le 04/11/2005 16:33 :
Bonjours à toutes est à tous. Ba voilà, j'ai une question toute simple. J'ai un bout de programme (ci dessous) qui ouvre un prot série de mon Pc pour attendre des données sur un réseau ModBus. Dans ce bout de code, je gére les erreurs. Par exemple si le port désigné par l'utilisateur n'existe pas, ou s'il est déja occupé, il renvoie un message d'erreur. C'est à dire qu'après avoir tenté de l'ouvrir, il le programme s'apperçois qu'il ne peut ouvrir le port demandé donc il balance unb erreur. Ce que j'aimerais savoir : est-il possible de vérifier l'existence du port avant même de tenter de l'ouvrir ???? Autrement dis, si l'utilisateur demande d'ouvrir le Port série N° 9, alors que j'en ais que 2 sur mon Pc, le programme ne tente même pas de l'ouvrir et balance automatiquement un message d'erreur.
Merci à tous ceux est celles qui prendront la peine de ma répondre. Merci d'avance...
'------------------ MON PROGRAMME ----------------------- ' Initialisation du composant Active X : MSComm Public Function InitCommunication(Vitesse As Long, Parite As String, BitDonnees As Integer, BitStop As String) As Boolean 'Retourne True si connexion ouverte Dim MyParamConnexion As String
' Ouvre le port si fermé If MSComm1.PortOpen = False Then ' Définit la propriété InputMode pour la lecture de données binaires MSComm1.InputMode = comInputModeBinary
' Définit qu'il n'y a pas de protocole matériel MSComm1.Handshaking = comNone
' Définit les paramètres de connexion MSComm1.Settings = MyParamConnexion
' Définit le port MSComm1.CommPort = MyVoie
' Ouvre le port MSComm1.PortOpen = True
End If ' Lancement du Timer Timer1 = True InitCommunication = True On Error GoTo 0 Exit Function
InitCommunicationErr: Timer1 = False Debug.Print "Erreur "; Err.Number & " - " & Err.Description & " dans InitCommunication" MsgBox "Le port COM" & MyVoie & " n'est pas disponible.", vbCritical, "Initcommunication"
On Error GoTo 0 InitCommunication = False Unload Me