Bonjour tout le monde,
j'utilise un modem gsm pour envoyer les sms.
Je dois envoyer l'ensemble des message contenu dans ma MSFlexGrid(2 colonnes : Numéro et message).
Je dois faire une boucle..
j'ai fais une fonction send_sms :
Code :
PrivateFunction send_sms(num, body)
ModemGSM.InBufferCount = 0'vider le buffer du modem
Text2.text = ""'Text2 contient les réponse du modem
ModemGSM.Output = "AT" & Chr$(13)
PauseGetTickCount (1000)'permet d'attendre 1s(le temp pour que le modme répond)
ModemGSM.Output = "AT+CMGF=1" & Chr$(13)'Format text
PauseGetTickCount (1000)
ModemGSM.Output = "AT+CMGS=" & Chr$(34) & num & Chr$(34) & Chr$(13)'Numéro destinataire
PauseGetTickCount (1000)
ModemGSM.Output = body + Chr$(26)'Message + (CTRL+Z)
PauseGetTickCount (4000)'Attente 4s(Estimation)
EndFunction
Voilà le bouton envoyer :
Code :
PrivateSub Envoyer_Click()
'nombre de lignes de la grille :
lignes = grille.Rows - 1
ModemGSM.Output = "AT+CFUN=1" & Chr(13)'selects the level of functionality(1=Full functionality)
PauseGetTickCount (150)
ModemGSM.Output = "AT+CMEE=2" & Chr(13)'Format des erreurs(2=text)
PauseGetTickCount (150)
For CRow = 1To lignes
Call send_sms(grille.TextMatrix(CRow, 0), grille.TextMatrix(CRow, 1))
Next CRow
EndSub
voilà comment je récupère les réponses du modem :
Code :
PrivateSub Timer1_Timer()'interval = 100
If ModemGSM.InBufferCount <> 0Then
Text2.text = Text2.text + ModemGSM.Input'Récupération des infos de communication avec le modem
EndIf
EndSub
quand je teste avec les même commandes AT dans l'hyperTerminal de windows ça marche impécable, le message s'envoi sans problème.
Mais avec mon programme, le modem renvoi l'erreur suivante :
Code :
AT
OK
AT+CMGF=1
OK
AT+CMGS="067******"
> Mon message!
+CMS ERROR: SIM busy 'Voilà ce que je comprend pas!!!!! pourquoi busy???occupée?? par quoi???
Si qq1 pourra m'aider j'en serai vraiment très reconnaissant...
Merci.