VB+Commandes AT

zero__cool Messages postés 2 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 10 septembre 2011 - 9 sept. 2011 à 15:42
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 11 sept. 2011 à 13:17
Bonjour,
Je suis entrain de développer une interface d'envoi de SMS via les Modem GSM, a une liste de numéros importé a partir d'un fichier texte, en utilisant les commandes AT.
Tout fonctionne Nikel pour un seul numéro, mais quand il s'agit de plusieurs ça ne passe pas voici le code (je vous mets le nécessaire, si besoin de plus je le metterais):
Procédure d'appel de l'envoi
While k < numeros.Length
                If k > 0 Then
                    stopwatch = stopwatch.StartNew
                    Thread.Sleep(secatt.Text * 1000)
                    stopwatch.Stop()
                End If

                If numeros(k).ToString.Trim <> vbNullString Then                 
                    envs.envoiSMS(numeros(k).ToString.Trim, messagetxt.Text.Trim)
                    envs.ClosePor()
                End If

                k += 1
            End While

Et la fonction d'envoi:
            OpenPor()
            commande = "AT+CPIN=0000" + vbCrLf
            commande &= "AT+CMGS=""" + numero.ToString.Trim + """" + vbCrLf
            commande &= messag + Chr(26) + Chr(26) + vbCrLf + vbCrLf
            'MsgBox(commande)
            If ModemPort.IsOpen = True Then
                ModemPort.WriteLine(commande)
                ModemPort.WriteLine(vbCrLf)
            Else
                MsgBox("Impossible de se connecter au Modem")
            End If

avec ce code, un seul (le premier de la liste) reçevera le SMS, c'est comme si ile ne détecte pas la chr(26) (CTRl+Z)

Merci pour votre aide

6 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
10 sept. 2011 à 09:18
Salut

Je n'y connais pas grand chose en .Net et pas beaucoup plus en AT, mais une chose m'étonne : dans les exemples que j'ai pu trouver sur internet, après chaque commande AT, le programme relit l'état pour vérifier que le modem est prêt, notamment l'attente du caractère > avant d'écrire le texte du message, ou l'attente du code 62 après l'envoi pour la confirmation d'envoi.

De plus, tu n'utilises pas <la commande AT> de désignation du type de message, CMGF=1 pour du texte.

A mon avis, je pense que l'envoi d'un même texte vers plusieurs destinataire doit pouvoir se faire en une seule fois (1). Vérifie s'il n'est pas possible de mettre une liste de n° de téléphone (2) au d'un n° unique.
(1) peut-être avec une autre commande AT
(2) séparés par un caractère spécifique

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
10 sept. 2011 à 11:47
Bonjour,

Encore plus nul que jack, je me pose deux questions en guise de réflexion de petits points de détail...

La commande :
commande &= messag + Chr(26) + Chr(26) + vbCrLf + vbCrLf

ne serait-elle pas mieux interprétée avec "&" au lieu "+" ?
commande &= messag & Chr(26) & Chr(26) & vbCrLf & vbCrLf

Ce que contient vbCrLf { donc chr(13) & chr(10)} agit-il sur les commandes AT ?

Amicalement,
Us.
0
zero__cool Messages postés 2 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 10 septembre 2011
10 sept. 2011 à 13:50
Bonjour,
Merci pour vos réponses,

Jack:
Pour la mode texte oui je l'ai déjà activé, en fait je reçoit de message, mais pour un seul numéro...
En fait l'envoi doit se faire avec cadence, sinon l'opérateur bloquera la carte SIM et les sms ne passeront plus (c du flood...) je dois le faire 1 par 1 avec un temps d'attente plus ou moins égale a 5 / 6 secondes
mais j'aimerais bien comprendre l'attente du caractère " > " ... peut être qu'avant d'envoyer la commande d'écriture du message je dois lire la buffer (si vous avez un code qui peut m'aider pour ça,même sans .NET, serais gentil )

us_30:
J'ai utilisé aussi les " & " mais c pareil...
En fait le vbCrLf s'exécute parce qu'avant d'écrire le message je dois lui donner le numéro suivi par le vbCrLf

Merci encore une fois
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
10 sept. 2011 à 14:40
sinon l'opérateur bloquera la carte SIM et les sms ne passeront plus (c du flood...)


Ou_i ?
Explique ...
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
11 sept. 2011 à 13:04
Salut,
sinon l'opérateur bloquera la carte SIM et les sms ne passeront plus (c du flood...)


C'est la question que je me posais déjà, c'est l'équivalent au spam mais en SMS...

Ceci-dit Orange et les autres le fait bien pour envoyer des pubs, c'est à dire que eux ont le droit mais pas nous...


CF2i - Guadeloupe
Ingénierie Informatique
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
11 sept. 2011 à 13:17
Du flood : Alors, pour ma part, ce sera la dernière réponse à ce post - on est déjà assez emmerdé comme ça avec les gens qui ne respectent pas les règles de vie en communauté, tu sais, le "truc" qu'on appelle liberté :
"La liberté des uns s'arrête là où celle des autres commence"

La réponse à ta question à propos du > se trouvera dans les pages que tu trouveras sur le net avec une simple recherche "VB commande AT SMS"
Oui, il faudra lire les infos issues du téléphone et pas seulement lui en envoyer.
0