moutaye_bis
Messages postés2Date d'inscriptionlundi 21 juin 2004StatutMembreDernière intervention28 juin 2004
-
23 juin 2004 à 10:01
moutaye_bis
Messages postés2Date d'inscriptionlundi 21 juin 2004StatutMembreDernière intervention28 juin 2004
-
28 juin 2004 à 10:44
Bonjour à tous
Je poste ce message car j'aimerais savoir comment récupérer "proprement" en vue d'une exploitation les données du buffer d'entrée lorsque l'on attaque un modem avec des commandes AT.
J'ai écrit un script qui attaque mon modem pcmcia GPRS avec une commande at+csq (commande qui retourne la valeur de l'atténuation du signal). Ensuite j'écris les données du buffer dans un fichier text mais je fais cela en bricolant car je connais peu VB et ses instruction. Voici la portion de code concernée :
---------------------------
Private Sub start1_Click()
'Déclaration des variables
Dim int1 As Integer
initstring$ = "at+csq" + vbCr
int1 = FreeFile
Open "C:\log_test.txt" For Output As #int1
'Configuration du port
MSComm1.CommPort = 2
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
'Vide le tampon d'entrée.
MSComm1.InBufferCount = 0
'Envoie la commande AT
MSComm1.Output = initstring$
'Récupère le buffer dans une chaîne de caractères
Dim tampon$
tampon$ = tampon$ & MSComm1.Input
'Récupère les données du buffer et les stocke dans un fichier log
Do
DoEvents 'indispensable sinon ça marche pas!!!
tampon$ = tampon$ & MSComm1.Input
If InStr(tampon$, "+CSQ") Then
Print #int1, tampon$
End If
Loop Until InStr(tampon$, "OK" & vbCrLf)
'Fermeture du fichier d'écriture
Close #int1
'Fermeture du port
MSComm1.PortOpen = False
MsgBox ("Opération terminée")
End Sub
--------------------
En fait cette commande (AT+CSQ) renvoie au modem le résultat sous la forme (tel quel dans le fichier text): "at+csq
+CSQ: 17,0
OK
"
Ce qui m'intéresse c'est de récupérer la valeur (ici 17) afin de pouvoir l'exploiter proprement. Quelqu'un peut il m'indiquer un morceau de code ou une syntaxe de traitement de chaîne de caractères afin que je puisse réaliser cela proprement (vous le voyez dans mon code l'appel à la fonction instr(..) est vraiment du bricolage) ?
Merci d'avance pour votre aide et bonne journée à tous