MSComm -- Dialogue avec modem

Saeko - 10 août 2001 à 18:30
zoizome Messages postés 3 Date d'inscription dimanche 13 juillet 2003 Statut Membre Dernière intervention 14 novembre 2005 - 13 sept. 2005 à 14:39
j'aimerais réaliser un terminal / programme de connection à internet avec un modem à l'aide du compansant MSComm.

Le problème :
Je n'arrive pas lire la réponse de mon modem (mscomm1.input reste vide...).

Conséquence : ma boucle do loop pompée dans l'aide (cf. code en dessous) tourne éternellement. Je ne peux jamais connaître l'état du modem et ne peux continuer la procédure de connection.


Merci d'avance !

Le code :

' Tampon devant contenir la chaîne d'entrée
Dim InString As String

MSComm1.CommPort = 2
MSComm1.PortOpen = True

' Extrait toutes les données disponibles.
MSComm1.InputLen = 0
'initialise modem
MSComm1.Output = "ATV1Q0" & Chr$(13) 'ou ATZ, c'est idem

Do
DoEvents
Buffer$ = Buffer$ & MSComm1.Input
Loop Until InStr(Buffer$, "OK" & vbCrLf)

'MSComm1.Output = "ATDT0265550065" & Chr$(13)
MSComm1.PortOpen = False

2 réponses

-------------------------------
Réponse au message :
-------------------------------

j'aimerais réaliser un terminal / programme de connection à internet avec un modem à l'aide du compansant MSComm.

Le problème :
Je n'arrive pas lire la réponse de mon modem (mscomm1.input reste vide...).

Conséquence : ma boucle do loop pompée dans l'aide (cf. code en dessous) tourne éternellement. Je ne peux jamais connaître l'état du modem et ne peux continuer la procédure de connection.


Merci d'avance !

Le code :

' Tampon devant contenir la chaîne d'entrée
Dim InString As String

MSComm1.CommPort = 2
MSComm1.PortOpen = True

' Extrait toutes les données disponibles.
MSComm1.InputLen = 0
'initialise modem
MSComm1.Output = "ATV1Q0" & Chr$(13) 'ou ATZ, c'est idem

Do
DoEvents
Buffer$ = Buffer$ & MSComm1.Input
Loop Until InStr(Buffer$, "OK" & vbCrLf)

'MSComm1.Output = "ATDT0265550065" & Chr$(13)
MSComm1.PortOpen = False
0
zoizome Messages postés 3 Date d'inscription dimanche 13 juillet 2003 Statut Membre Dernière intervention 14 novembre 2005
13 sept. 2005 à 14:39
Deja met entre
MSComm1.PortOpen = True
ET
MSComm1.Output = "ATV1Q0" & Chr$(13) 'ou ATZ, c'est idem

la fonction sleep(1000) par exemple pour ke ton application ai le temp de se connecter au port et lancer les commandes pui peu etre un p'tit sleep(300) dans ta boucle.
rajoute ça:
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
0
Rejoignez-nous