下面是在sim300模块上面发送成功的中文短信息的例子:
AT+CMGF=0
OK
AT+CSCA="+8613800371500" //只需要设置一次
OK
AT+CMGS=019
> 0011000D91683180839330F7000801044F60597D //发送中文“你好”
+CMGS: 64
OK
其中中文“你好”的编码占用4个字节,即4F60597D,而发送内容中的“04”即是发送内容的长度。在发送内容中,前面的“0011000D91683180839330F7000801”共15个字节,加上发送内容的4个字节“04”,即为19个字节,也就是“AT+CMGS=”后面的“019”。
如果想改变发送内容的长度,需要修改“019”、“04”和发送的内容编码,但必需满足编码字节长度加上15等于发送内容的总长度。举例如下:
at+cmgs=023
> 0011000D91683180839330F7000801084F60597D4E014E09
+CMGS: 78
OK
发送的中文为“你好丁三”(编码为:4F60597D4E014E09),编码长度为8个字节,加上固定的15,即为“023”。
具体理解前15个字节和发送内容各字节的含义,可参看下文:
[PDU]数据单元格式定义为:
以下例子 发送“你好”到 13912345678
发送数据是:你好
Unicode译码为:4F60597D//其它字符的Unicode译码可参见附件B
AT+CMGS=019//15(PDU规约头固定长度15 字节)+4(报文长度4个字节)
> 0011000D91683119325476F8000801044F60597D [ctrl-Z]
00 //为SCA预留
11 // FO 设置PDU 类型
00 // MR 发送参考号
0D //DA目的号码长度
91 //DA目的号码类型
68 //DA中国的区号
3119325476F8 //DA目的号码编码
00 // PID 发送方式
08 //DCS编码模式
01 //VP 有效期
PDU 中用户数据前的PDU 头的长度是15字节
04 //UDL数据长度
4F60597D //UD数据内容Unicode 译码
ITM100_SMS APP V01.01 SIMCOM
例子中目的号码是一种内存编码方式,将每两位数据位置互换,余下最后单位的补F
如13912345678编码为3119325476F8
用户使用PDU模式发送中文短消息时只需按照上述例子,改变TPDU的十进制长度、手机号码编码、报文长度和报文内容Unicode译码即可。
设置DCS编码模式改变短消息发送等级:
按照GSM08.38协议约定,PDU 中的DCS字段(Bit7…0)用于设置短消息内容的编码方式和发送等级,具体为Bit4用于决定Bit1 和Bit0的设置是否有效(1 为有效,0为无效);Bit1和Bit0均设置为0 表示短消息发送等级为0等级,即直接发送至终端而不存放在SIM 卡;Bit3 设置为1且Bit2 设置为0表示短消息内容为UCS2 编码。上例中DCS字段为08,即表示短消息内容为UCS2编码且无发送等级;若改为18 则表示短消息内容为UCS2编码且按0 等级发送,即直接发送至目的终端。
联系客服