跳转至

CMGR

读短信:AT+CMGR

使用设置指令,可将消息存储器<mem1>中,索引为<index>的消息返回到TE。若该消息处于"已接收未读"状态,则将其状态变为"已接收已读"。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CMGR=<index> PDU模式下(AT+CMGF=0),返回:
+CMGR:<stat>,[<alpha>],<length><CR><LF><pdu>
OK
如果是TEXT模式(AT+CMGF=1):
对于SMS-DELIVER:
+CMGR:<stat>,<oa>,[<alpha>],<scts>[,*<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>,<length>*]<CR><LF><data>
OK
对于SMS-SUBMIT:
+CMGR:<stat>,<da>,[<alpha>][*,,,,,[],<sca>,<tosca>,<length>*]<CR><LF><data>
OK
对于SMS-STATUS-REPORT:
+CMGR:<stat>,<fo>,<mr>,[<ra>],[<tora>],<scts>,<dt>,<st>
OK
对于SMS-COMMAND:
+CMGR:<stat>,<fo>,<ct>[,*<pid>,[<m**n**>],[<da>],[<toda>],<length><CR><LF><cdata>]
OK
注:以上斜体字是否显示由+CSDH的设置决定
测试命令 AT+CMGR=? OK

参数定义:

参数 定义 取值 对取值的说明
<da>,<oa> 请参考AT+CMGW条目
<toda>,<tooa>
<length>
<stat>
<alpha> MT 电话簿记录对应<da><oa>的显示 字符型
<pid> Protocol Identification 请参考AT+CSMP条目
<fo> PDU短信首字节
<vp> Valid Period
<dcs> Data Coding System
<scts> 短信中心时间戳(Short Message Center Time Stamp) 时间-字符串型GSM 03.40 TP-Service-Centre-Time-Stamp
<dt> Discharge time 时间-字符串型GSM 03.40 TP-Discharge-Time,与<st>成对出现
<st> Status 整数型GSM 03.40 TP-Status描述上一个已经发送的MO短信的状态
<ct> Command Type 整数型GSM 03.40 TP-Command-Type,缺省为0
<ra> 接收地址 字符串型的GSM 03.40 TP-Recipient-Address 地址-取值字段
<cdata> TEXT模式下SMS-COMMAND的返回 TP-Command-Data(GSM 03.40)
<mr> 消息参考(MessageReference) TP-Message-Reference(GSM 03.40), 整数型
<mn> 消息序号 TP-Message-Number(GSM 03.40), 整数型

举例:

命令(→)/ 返回(←) 实例 解释和说明
用TEXT模式读取短信:
AT+CMGF=1 设置为TEXT模式
OK
AT+CSCS="GSM" +CSCS命令决定了读取的短信内容的编码方式
OK
AT+CMGR=6 读取index=6的英文短信
+CMGR: "REC READ","+86139*9","12/03/30,20:40:31+32"
HI!
OK
这个英文短信的内容为"HI"
AT+CMGR=1 Air720S系列模块读一个内容有中文的短信
+CMGR: "REC READ","002B0038003600310033003100360032003300310030003200360033",,"13/01/06,10:11:47+32"
611F8C2200310032
OK
注:TEXT模式下Air720S系列模块收到带有中文的短信,显示的是短信内容的UCS2码的可见字符形式例如本例是"感谢12"的UCS2码的可见字符形式 TEXT模式下如果Air720S系列模块收到的是不含中文的短信,则直接显示内容
AT+CMGR=2 Air720U系列模块读一个内容有中文的短信
+CMGR: "REC READ","002B0038003600310033003100360032003300310030003200360033",,"13/01/06,10:11:47+32"
感谢34
OK
注:Air720U系列模块一个内容有中文的短信,是用的GB2312编码
用PDU模式读取一个短信:
AT+CMGF=0 设置为PDU模式
OK
AT+CMGR=9 读取index=9的短信
+CMGR: 0,,240891683108200105F0240D91683161450179F900082180904121102304611F8C22
OK