Comment attendre qu'une communication rs232 ait a nouveau lieu??
mathieuleydier
Messages postés53Date d'inscriptionjeudi 15 avril 2004StatutMembreDernière intervention30 avril 2008
-
23 avril 2004 à 10:55
mathieuleydier
Messages postés53Date d'inscriptionjeudi 15 avril 2004StatutMembreDernière intervention30 avril 2008
-
23 avril 2004 à 16:11
bonjour
voila j'ai un modem wavecom qui appelle un numéro distant quand je lui envoie l'ordre ATDnuméro en cliquant sur un bouton via rs232 (contole mscomm)
je voudrais attendre que l'appareil distant réponde (il envoie une chaine de caratctère genre "OK" après plusieurs secondes) avant de faire tout autre évenement??Je développe ca pour l'entreprise pour laquelle je bosse ca fait une semaine que j'y arrive po alors a votre bon coeur messieurs dames svp heelp
Private Sub Form_Load()
mscomm.CommPort = 1
mscomm.PortOpen = True
mscomm.Settings = "9600,n,8,1"
mscomm.Handshaking = comRTS
mscomm.RThreshold = 1
mscomm.InputMode = comInputModeText
mscomm.InputLen = 1
End Sub
---
Private Sub Command1_Click()
mscomm.Output = "ATD" + "numéro" + vbCrLf
Call lecture(tampon)
///c'est la que je voudrais attendre la réponse avant d'afficher le tampon///
text.text=tampon
---
Sub lecture(tampon)
tampon = ""
Do
DoEvents
Loop Until Right(tampon, 1) = vbLf
End Sub
A voir également:
Comment attendre qu'une communication rs232 ait a nouveau lieu??
cs_pluplu
Messages postés615Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention 4 juillet 2012 23 avril 2004 à 12:29
En fait tu dois faire un loop et vérifier le tampon d'entrée de ton control mscomm, je t'envoie l'exemple de l'aide microsoft il est suffisament explicit.
Private Sub Form_Load ()
' Tampon devant contenir la chaîne d'entrée
Dim Instring As String
' Utilise COM1.
MSComm1.CommPort = 1
' 9600 bauds, pas de parité, 8 bits de données et 1 bit d'arrêt.
MSComm1.Settings = "9600,N,8,1"
' Indique au contrôle qu'il doit lire la totalité
' du tampon si la propriété Input est utilisée.
MSComm1.InputLen = 0
' Ouvre le port.
MSComm1.PortOpen = True
' Envoie la commande Attention au modem.
MSComm1.Output = "ATV1Q0" & Chr$(13) ' Vérifie que
'le modem répond "OK"
' Attend le retour des données vers le port série.
Do
DoEvents
Buffer$ = Buffer$ & MSComm1.Input
Loop Until InStr(Buffer$, "OK" & vbCRLF)
' Lit les données composant la réponse "OK" au niveau du port série.
' Ferme le port série.
MSComm1.PortOpen = False
End Sub
Pascal Laurençon
Mieux vaut un petit clic que deux grandes claques..
Mieux vaut un naze bin qu'un naze tout court..