2013-08-28 4 views
3

Je veux envoyer des SMS en mode PDU. J'ai vérifié la spécification pour mon modem, et il prend en charge le mode PDU.Comment envoyer des SMS par modem GSM en mode PDU?

J'ai développé un encodeur PDU et un décodeur, mais maintenant je ne sais pas comment envoyer des données à mon modem. J'ai essayé ces commandes AT:

AT 

AT+CMGF=0 

après l'envoi de ces commandes j'ai envoyé les données de PDU comme ceci:

AT+CMGW="16079189390500410011000C918939050000000000AA02E834" 

J'ai vérifié l'exactitude de cette PDU en utilisant cet outil en ligne:

http://www.twit88.com/home/utility/sms-pdu-encode-decode

mais après l'avoir envoyé via la commande AT, le modem se bloque.

Est-ce la bonne façon d'envoyer des PDU SMS? J'ai recherché sur Google et ne trouve pas d'informations utiles.

Répondre

5

Tout d'abord, d'envoyer des sms lorsque le modem est en mode ufc, vous devez envoyer ces commandes: AT + CMGS = <longueur> <CR>, où la longueur est (longueur de la chaîne binaire PDU - 2)/2 Lorsque le symbole '>' apparaît, vous devez envoyer vos caractères pdu et ctrl + z (char.ConvertFromUtf32 (26)).

Voici quelques ressources qui peuvent être utiles: http://www.developershome.com/sms/ SMS Tutoriel http://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/online-sms-deliver-pdu-decoder/ un autre décodeur en ligne ufc (mais votre lien est mieux à mon avis) http://www.fccps.cz/img.asp?attid=24590 AT guide de commandes (pour WAVECOM, mais il n'y a pas de différence)

dernier conseil - utiliser un client telnet pour vous connecter et tester votre modem et voir comment il répond

1

longueur de la chaîne PDU = (PDUlength - 2 - longueur de ServiceCentreNumber)/2

ServiceCentreLa longueur du numéro est le premier octet de la chaîne PDU. (2 Hex ombles = 8 bits)

commande pour envoyer des SMS en mode PDU:

send:AT+CMGF=0     //recieved "\r\nOK\r\n" 
send:AT+CMGS=<length>   //recieved "\r\n> " 
send:<pdu string><char(26)> //recieved "\r\n+CMGS: 59\r\n\r\nOK\r\n" 

Une autre variante consiste à utiliser à la place + commande CMGS + CMGW écrire msg à la mémoire (même code ci-dessus), puis utilisez + CMSS pour envoyer le message de la mémoire.

Questions connexes