深入浅出AT命令(5)-短信命令
在短消息相关的命令中,所涉及到的参数比较集中,所以先列表给出,在后面的命令详解中就不再重复说明.常用参数定义:
注:在下文中所给出的参数类型定义如下:
Select Message Service 选择短消息服务.
AT+CSMS? 返回当前的服务类型及 ME 支持的信息: 如正确,返回: +CSMS:<space><service>,<mt>,<mo>,<bm>:如错误,返回: ERROR.比如:+CSMS: 0,1,1,1
AT+CSMS= <service>:选择 SMS 类型:如正确,返回: +CSMS:<SPACE><mt>,<mo>,<bm>;如错误,返回:ERROR.
参数说明:
<service>
0 Phase 2
128 厂商自定义
<mt>
0 ME 不能接收短消息
1 ME 可以接收短消息
<mo>
0 ME 不能发送短消息
1 ME 可以发送短消息
<bm>
0 ME 不能接收小区广播
1 ME 可以接收小区广播
Preferred Message Storage 选择消息存储器.
AT+CPMS=? 返回所有支持的读,写,存短消息的存储器: 如正确,返回:+CPMS:<SPACE>(list of supported <mem1>s),(list of supported <mem2>s),(list of supported <mem3>s) ,如错误,返回: ERROR.比如:+CPMS: ("SM"),("SM"),("SM")
AT+CPMS? 返回当前读,写,存短消息的存储器: 如正确,返回: +CPMS:<SPACE><mem1>,<used1>,<total1>,<mem2>,< used2>,<total2>,<mem3>,<used3>,<total3> 如错误,返回: ERROR:<err>.比如:+CPMS: "SM",0,30,"SM",0,30,"SM",0,30
AT+CPMS= <mem1>[,<mem2>[,<mem3>]] 选择读、写、存短消息时对应的存储器:如正确,返回:+CPMS:<SPACE><used1>,<total1>,<used2>,<total2>,< used3>,<total3> 如错误返回:ERROR.
参数说明:
<mem1> 字符型,读,删短消息的存储器
“SM” SIM 卡
<mem2> 字符型,写,发送短消息的存储器
“SM” SIM 卡
<mem3> 字符型,新消息到达后需保存时对应的存储器
“SM” SIM 卡
<used1> 整型,<mem1>中的消息条数
<used2> 整型,<mem2>中的消息条数
<used3> 整型,<mem3>中的消息条数
<total1> 整型,<mem1>的容量
<total2> 整型,<mem2>的容量
<total3> 整型,<mem3>的容量
注:
<mem1>指定+CMGL,+CMGR,+CMGD 操作对应的存储器,
<mem2>指定+CMSS,+CMGW 操作对应的存储器,
<mem3>指定新消息到达后需存储时对应的存储器.
Message Format 选择短消息格式.
AT+CMGF=? 返回所有支持的消息格式: 如正确,返回:+CMGF:<SPACE>(list of supported <mode>s) ;如错误,返回: ERROR.比如:+CMGF: (0,1)
AT+CMGF? 返回当前的消息格式: 如正确,返回:+CMGF:<SPACE><mode> 如错误返回: ERROR,比如:+CMGF: 0
注:
<mode>
0 PDU模式
1 TEXT 模式
Service Center Address 设置短消息服务中心地址.
AT+CSCA=? 返回OK
AT+CSCA? 返回当前的服务中心地址: +CSCA:<SPACE><sca>,<tosca> 如错误,返回: ERROR,比如:+CSCA: "+8613800755500",145
AT+CSCA= <sca>[,<tosca>]:选择 SM 服务中心地址:如正确,返回:OK;如错误,返回:ERROR.
Select Cell Broadcast Message Types 选择小区广播信息类型.
AT+CSCB=? 返回支持的选择类型: +CSCB:(list of supported <mode>s),如错误返回: +CMS ERROR:<err>,比如+CSCB: (0,1)
AT+CSCB? 返回当前选择的小区广播类型及支持模式: +CSCB:<mode>,<mids>,<dcss>, 如错误返回: +CMS ERROR:<err>,
比如:+CSCB: 0,"26214,229,50,3,24536,29719,1536,101,2282,97","0-255"
AT+CSCB=[ <mode>[,<mids >[,<dcss>]]]选择可接收或拒绝接收的小区广播类型。如执行正确则返回: 如错误返回: +CMS ERROR:<err>
参数说明:
<mode>
0 接收<mids>和<dcss>指定类型的小区广播.
1 不接受<mids>和<dcss>指定类型的小区广播.后面指明<mids>和<dcss>时表示拒绝接收所有小区广播.
注:
<dcss>目前只支持”0,1”(中,英文).
New Message Indications to TE 新消息指示
AT+CNMI=? 返回所有支持的指示参数类型:
+CNMI:(list of supported <mode>s),(list of supported <mt>s),(list of supported <bm>s),(list of supported <ds>s),(list of supported <bfr>s)
如错误返回: +CMS ERROR:<err>,比如:+CNMI: (0,1,2),(0,1,2,3),(0,2),(0,1),(0,1)
参数说明:
<mode> 控制指示信息的处理
0:先将通知缓存起来,再按照<mt>的值进行发送.
1:在数据线空闲的情况下,通知TE,否则,不通知TE.
2:数据线空闲时,直接通知TE;否则先将通知缓存起来,待数据线空闲时再行发送.
3:直接通知TE.在数据线被占用的情况下,通知TE的消息将混合在数据中一起传输.
<mt> 指定新的短消息到达时的指示方式:
0:接受的短消息存储到默认的内存位置(包括class 3),不通知TE.
1:新到达的SMS-DELIVER 被正确保存后,返回其存储器及位置信息+CMTI:<mem>,<index>(注:mem是以引号标注的.)
2:对于class 2短消息,储存到SIM卡,并且向TE发出通知;对于其他class,直接将短消息转发到TE:+CMT:[<alpha>],<length><CR><LF><pdu>(PDU模式)
或者+CMT:<oa>.[<alpha>.]<scts>[,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>,<length>]<CR><LF><data>(text模式)
3:对于class 3短消息,直接转发到TE,同<mt>=2;对于其他class,同<mt>=1.
<bm> 小区广播到达时的指示方式:
0 不发送新消息指示
<ds> SMS-STATUS-REPORT 的指示方式:
0:状态报告不通知
1:新的状态报告通知,返回:+CDS:;length;;CR;;LF;;pdu;
2:如果新的状态报告存储到ME,则返回:+CDSI:;mem;,;index;
<bfr> 进入<mode>=1,2,3 时存于buffer 中的消息指示的处理方式:
0 将所有缓存区中的信息全部发至 TE
AT+CNMI? 返回当前的新消息指示参数: +CNMI:<mode>,<mt>,<bm>,<ds>,<bfr> 如错误返回: ERROR,比如:+CNMI: 2,1,0,1,0,收到短信的提示为;+CMTI: "SM",1
AT+CNMI=[<m ode>[,<mt>[,<bm>[,<ds>[,<bfr>]]]]] 选择新消息到达时的各项指示参数,正确执行时返回: OK 如错误返回: +CMS ERROR:<err>
List Message 列出消息
AT+CMGL=? 返回所有支持的信息状态值: 如正确,返回:+CMGL:<SPACE>(list of supported <stat>s) ,如错误,返回: ERROR,比如:
(+CMGF=1)
+CMT: "+8613798290312","","13/12/14,10:38:44+32"
123abc
+CMGL: 1,"REC UNREAD","+8613798290312","","13/12/14,10:38:44+32"
123abc
(还是上一条短信,+CMGF=0,执行AT+CMGL=4)
+CMGL: 1,1,"",26
0891683108705505F0040D91683197280913F20000312141018344230631D92C2C1E03
Read Message 读取短消息
AT+CMGR=? 返回OK
AT+CMGR= <index> 读取存储器中指定位置的消息(存储器由+CPMS 指定),返回格式:TEXT 模式下(+CMGF=1)且执行正确:
SMS-DELIVER:
+CMGR:<stat>,<oa>,[<alpha>],<scts>[,<tooa>,<fo>,<p
id>,<dcs>,<sca>,<tosca>,<length>]<CR><LF><data>
OK
SMS-SUBMIT:
+CMGR:<stat>,<da>,[<alpha>][,<toda>,<fo>,<pid>,<d
cs>,[<vp>],<sca>,<tosca>,<length>]<CR><LF><data>
OK
如错误,返回:ERROR,比如:
PDU模式:
+CMGR: 1,"",26
0891683108705505F0040D91683197280913F20000312141018344230631D92C2C1E03
TEXT模式:
+CMGR: "REC READ","+8613798290312","","13/12/14,10:38:44+32"
123abc
中文短信:
+CMGR: 0,"",36
0891683108705505F0040D91683197280913F2000831214101841023100031003200330061006200635468536B
+CMGR: "REC READ","+8613798290312","","13/12/14,10:48:01+32"
0031003200330061006200635468536B
Send Message 发送短消息
TEXT 模式下 (+CMGF=1)AT+CMGS= <da>[,<toda>] <CR> text is entered <ctrl-Z/ESC>
ME 向网络发送短消息,成功时返回<mr>,当命令正确执行并成功发送时
返回: +CMGS:<mr>.如错误返回: +CMS ERROR:<SPACE><err>.
Send Message From Storage 发送已保存的短消息
AT+CMSS=?返回OK
AT+CMSS= <index>[,<da>[,<toda>]] 发送存储器中<index>指定位置的消息(SMS-SUBMIT),存储器由 +CPMS 设置的<mem2>参数选定.成功发送后网络返回<mr>值.如命令正确,返回: +CMSS:<mr>.如错误,返回:ERROR.
Write Message To Memory 写短消息
AT+CMGW=? 返回OK.
TEXT 模式下(+CMGF=1):AT+CMGW[=<o a/da>[,<tooa/toda>[,<stat>]]] <CR> text is entered <ctrl-Z/ESC>往存储器中写入信息(存储器由+CPMS 的<mem2>参数指定),正确存储后返回信息位置<index>.如执行正确且成功保存时返回:+CMGW:<SPACE><index>.如错误返回: +CMS ERROR:<err>.
注:
1 默认<stat>值为2(”STO UNSENT”).TEXT模式下<stat>不支持"REC UNREAD"和"REC READ".
2 ctrl-Z 表示输入消息体的结束.
3 ESC 表示放弃输入消息体,重回command 状态,此时将返回 ERROR.
4 输入的 text 是UCS2 编码.
12 AT+CMGD Delete Message 删除短消息
AT+CMGD=? OK
AT+CMGD= <index> 删除存储器中<index>指定位置的消息(存储器由+CPMS 设置的 <mem1>参数选指定).如正确,返回:OK 如错误,返回:ERROR.
注:<index>当前存储器中的位置号.
深入浅出AT命令(5)-短信命令,布布扣,bubuko.com
原文:http://blog.csdn.net/ce123_zhouwei/article/details/17307233