2013-08-15 2 views
1

Je veux utiliser GSM Modem dans une application dans un but précis. Ce que je veux, c'est gérer le rapport de livraison SMS pour la liste des sms envoyés.Comment gérer le rapport de livraison dans le modem GSM?

La boîte de réception GSM Modem & est limitée à 15 articles. chaque fois que je lis la boîte de réception, le modem gsm renvoie une liste et efface la liste.

comment vérifier l'état de livraison des sms qui avaient été supprimés de la boîte de réception GSM Modem?

J'ai besoin de quelque chose d'unique qui me permet d'identifier chaque message.

Répondre

4

chaque fois que je lis la boîte de réception, le modem gsm renvoie une liste et efface la liste.

Les messages stockés dans la mémoire du modem ne seront pas supprimés une fois que vous les aurez lus. Vous venez de lire le message avec la commande at+cmgl={message id in storage}, puis de le supprimer en utilisant la commande at+cmgd={message id in storage} (ou non, comme vous le souhaitez.Vous pouvez effacer tous les stockages du modem en utilisant la commande at+cmgd=1,4).

Retour à la question: après l'envoi de SMS, vous obtiendrez une réponse du modem, comme ceci: +cmgs: {sms id, 0 to 255} OK. Dans le cas, si Service Center a correctement envoyé le SMS, le modem renvoie cette réponse: +cds: {some id which does not matter} {PDU status report}. Vous avez juste besoin de decode cette PDU pour obtenir le rapport d'état, l'ID du SMS original et d'autres données utiles. Si l'ID et l'ID du rapport d'état envoyés par SMS sont égaux, vous obtenez un rapport d'état correspondant exactement à votre message. Notez que si vous supprimez un message du stockage du modem avant de recevoir le rapport de livraison, vous obtiendrez un rapport qui contiendra toutes les informations habituelles, mais status of delivery sera très probablement 71 au lieu de 0.