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 |