PDU 短信息发送案例
- 设置短信息格式。
AT+CMGF=0
- 发送短信息。
如,要向号码为“+8613466611983”发送一条短信息(号码转换为683164661189f3),发送内容为“你好”,(假设变成Unicode为“4F60597D”,长度是04) 。
那么操作如下:
AT+CMGS=019
>0011000D91683164661189f3000801044F60597D <ctrl+z>
+CMGS: <发送的条数>
OK
简要解释如下:
首先将短信息格式设为PDU模式 :AT+CMGF=0
发送AT+CMGS= YYY [CR] ;其中 YYY 为PDU的十进制长度
收到[>][SP]响应后再发送
[TPDU][ctrl-Z]
[TPDU]:发送规约数据单元:
TYPE 11
MR 00
DA 0D91683164661189f3 ; 8613466611983
PID 00
DCS F4
VP 01
UDL XX ; XX 不大于 8C
DD ; XX字节的用户数据
用户数据中最后一个字节为前面XX-1个字节的按位累加和。
TPDU 中用户数据前的PDU规约头的长度是15字节
用户数据最长可用到140字节。
发中文是 pdu 格式为 80 dcs=80
以下例子 发送到 13466611983
"你好"两个字,变成汉字的Unicode码:
译码为
044F60597D
04 长度
at 命令
AT+CMGS=019 {*解释:15(规约为15)+4(你好4个字节)=019}
返回
>
发送
0011000D91683164661189f3000801044F60597D <ctrl+z>
{*解释: 前面两个00照写; 11为TYPE; 00为MR, 0D91683164661189f3为DA; 00为PID; 08为DCS; 01为VP; 044F60597D为UDL的内容,就是中文信息部分}
具体就这些例子中显示其实是一种内存编码方式,如 1346为 3164
683164661189f3 ; 8613466611983。