VB+Commandes AT

Signaler
Messages postés
2
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
10 septembre 2011
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
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)
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
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.
Messages postés
2
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
10 septembre 2011

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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
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

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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
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.