5

PDU モードで SMS を送信したい。モデムの仕様を確認したところ、PDU モードがサポートされています。

PDU エンコーダーとデコーダーを開発しましたが、モデムにデータを送信する方法がわかりません。これらのATコマンドを試しました:

AT

AT+CMGF=0

これらのコマンドを送信した後、次のような PDU データを送信しました。

AT+CMGW="16079189390500410011000C918939050000000000AA02E834" 

このオンライン ツールを使用して、この PDU の正確性を確認しました。

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

しかし、AT コマンドで送信した後、モデムがハングします。

これは SMS PDU を送信する正しい方法ですか? Google で検索しましたが、有益な情報が見つかりません。

4

2 に答える 2

8

まず、モデムが pdu モードのときに SMS を送信するには、次のコマンドを送信する必要があります: AT+CMGS=<length> <CR>, length は (PDU バイナリ文字列の長さ - 2) / 2シンボルが表示されたら、pdu と ctrl+z 文字 (char.ConvertFromUtf32(26)) を送信する必要があります。

役立つリソースを次に示します。 http://www.developershome.com/sms/ SMS チュートリアル http://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/online-sms-deliver-pdu -decoder/別のオンライン pdu デコーダー (ただし、私の意見ではリンクの方が優れています) http://www.fccps.cz/img.asp?attid=24590 AT コマンド ガイド (wavecom 用ですが、違いはありません)

最後のアドバイス - 任意の telnet クライアントを使用してモデムを接続してテストし、モデムがどのように応答するかを確認してください

于 2013-09-11T08:14:51.297 に答える
3

PDU 文字列の長さ = (PDUlength - 2 - ServiceCentreNumber の長さ) / 2

ServiceCentreNumber の長さは、PDU 文字列の最初のバイトです。(2 16 進文字 = 8 ビット)

PDU モードで SMS を送信するためのコマンド:

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"

もう 1 つの方法は、代わりに +CMGS コマンド +CMGW を使用して msg をメモリに書き込み (コードは上記と同じ)、+CMSS を使用してメモリからメッセージを送信することです。

于 2014-12-25T05:09:41.847 に答える