2017-04-10 4 views
0

J'ai un tableau de Motorola Razar v3m contenant environ 26 téléphones maintenant. J'ai construit une plate-forme logicielle multithread qui gère chaque tâche de routage et d'acheminement des messages et de tous les messages.Contourner le stockage des messages lors de l'envoi de SMS avec les commandes AT

Quand j'ENJEU:

AT + CMGW = "1234567890" un message < 26> < 27>

Il faut près de 30 secondes pour écrire le message à la mémoire du téléphone, je puis faire envoyer le message en utilisant:

AT + CMSS = messageIndex

et cela prend encore 30 secondes.

J'ai essayé d'utiliser AT + CMGS mais je ne peux pas obtenir cette fonctionnalité pour envoyer un message avec succès.

J'ai besoin de ceci pour être fiable, mais avec cette combinaison de méthode/téléphone, je ne compterais même pas dessus pour me dire joyeux anniversaire une fois par an.

Existe-t-il un autre moyen d'envoyer un SMS sans le stocker en mémoire d'abord? Non seulement c'est lent; mais finit par empêcher le téléphone d'envoyer des messages du tout, même si elles sont supprimées par AT + CMGD.

Répondre

1

Il semble que vous écrivez dans la mémoire SIM, car elle est si lente. D'après la description de AT+CMGW dans 27.005:

commande d'exécution stocke un message (SMS-DELIVER soit ou SMS-SUBMIT) de stockage de mémoire <mem2>.

et plus haut dans "3.1 Définitions des paramètres":

type de chaîne <mem1>; mémoire à partir de laquelle les messages sont lus et supprimés (commandes Liste des messages + CMGL, Lire le message + CMGR et Supprimer le message + CMGD); valeurs définies (d'autres sont spécifiques au fabricant):

"BM" broadcast message storage 
"ME" ME message storage 
"MT" any of the storages associated with ME 
"SM" (U)SIM message storage 
"TA" TA message storage 
"SR" status report storage 

type de chaîne <mem2>; la mémoire à laquelle sont effectuées les opérations d'écriture et d'envoi (commandes Envoyer un message à partir du stockage + CMSS et Ecrire un message dans la mémoire + CMGW)); se référer à des valeurs définies

La valeur de <mem1> et <mem2> est configuré avec AT+CPMS, le stockage de message préféré (notez que vous devriez set both to the same value). Donc, je suppose que si vous exécutez AT+CPMS?, il retournera +CPMS: "SM", ..., ..., "SM", .... Si ma supposition est correcte, vous devriez juste passer à un autre stockage sur le téléphone ("ME", "MT" ou "TA" - vérifier avec AT+CPMG=? ce qu'il prend en charge (et il pourrait soutenir additional storages par rapport à la norme)) qui sera beaucoup plus vite que le stockage sim.


L'utilisation AT+CMGS devrait être possible, mais remarquez que vous avez besoin de wait for "\r\n> " avant d'envoyer la charge utile. Quand vous dites que vous n'avez pas réussi à faire fonctionner celui-là, je suppose que vous avez eu quelques problèmes en ce qui concerne l'analyse correcte des réponses et l'attente correcte.

+0

Je vais vous attribuer --- parce que vous êtes CORRECTE, mais en bref, la réponse a été l'abandon des téléphones Motorola Razr v3m - ils sont trop peu fiables. Ils ont fini par arrêter d'envoyer des messages, et j'ai 70 téléphones que j'ai essayés. J'ai fini par construire un Arduino avec un bouclier GSM et je l'ai codé comme j'avais besoin - il envoie des textes en moins d'une seconde. – Matth3w