首页 > 其他 > 详细

深入浅出AT命令(5)-短信命令

时间:2014-03-28 18:08:20      阅读:513      评论:0      收藏:0      [点我收藏+]

深入浅出AT命令(5)-短信命令

在短消息相关的命令中,所涉及到的参数比较集中,所以先列表给出,在后面的命令详解中就不再重复说明.常用参数定义:
注:在下文中所给出的参数类型定义如下:

  • 字符型:表示该参数要以字符串的形式给出,并且要带引号,如:"name";
  • 整型:表示该参数是以数字的形式给出;
  • 其它的类型一般是枚举类型,依据不同适用范围而不同,详情可依据表中给出的提示从协议中查找.
<alpha> 字符型 电话本中与地址对应的字符信息,格式参照+CSCS。
<da> 字符型 GSM03.40 TP-Destination-Address,格式参照+CSCS。
<dcs> GSM 03.38 SMS 数据编码方案 (default 0),或小区广播数据编码方案.
<fo> 整型 GSM 03.40 SMS-SUBMIT( 默认值17),SMS-DELIVER, SMS-STATUS-REPORT,SMS-COMMAND(默认值2)的首字节.
<dt> GSM 03.40 TP-Discharge-Time,格式为: “yy/MM/dd,hh:mm:ss±zz”(年/月/日,小时:分钟:秒: ±时 区+
<index> 整型 信息在存储器中的位置值.
<length> 整型 TEXT 模式(+CMGF=1)时指示信息体<data>的长度,PDU 模式(+CMGF=0)时指示TPDU 的 字节数。
<mid> 整型 GSM 03.41 CBM Message Identifier.
<mr> 整型 GSM 03.40 TP-Message-Reference.
<oa> 字符型 GSM 03.40 TP-Originating-Address,字符格式参照+CSCS.
<page> 整型 GSM 03.41 CBM Page Parameter 4-7bit.
<pages> 整型 GSM 03.41 CBM Page Parameter 0-3bit.
<pdu> GSM 03.40 中六种PDU 类型:SMS-DELIVER,SMS-DELIVER-REPORT,SMS-SUBMIT,SMS-SUBMIT-REPORT,SMS-STATUS-REPORT,SMS-COMMAND.
<pid> 整型 GSM 03.40 TP-Protocol-Identifier (默认值 0).
<ra> 字符型 GSM 03.40 TP-Recipient-Address,字符格式参照+CSCS.
<sca> 字符型 GSM 04.11 RP SC address,短消息中心地址,字符格式参照+CSCS.
<scts> GSM 03.40 TP-Service-Centre-Time-Stamp,格式参见<dt>.
<sn> 整型 GSM 03.41 CBM Serial Number.
<st> 整型 GSM 03.40 TP-Status.
<toda> 整型 GSM 04.11 TP- Destination-Address Type-of-Address,<da>首字符为”+”时145,其它为129。
<tooa> 整型 GSM 04.11 TP-Originating-Address Type-of-Address,参见<toda>.
<tora> 整型 GSM 04.11 TP-Recipient-Address Type-of-Address,参见<toda>.
<tosca> 整型 GSM 04.11 RP SC address Type-of-Address,参见<toda>.
<vp> GSM 03.40 TP-Validity-Period。格式取决于SMS-SUBMIT 的<fo>值:可为整型(默认值167) ,可 为时间串格式(参见 <dt>).


<data> 短消息:GSM 03.40 TP-User-Data,格式定义如下:
1. 若<dcs>指定GSM 03.38 default alphabet 且<fo>未设定UDHI:
1) +CSCS 设置的TE 字符集不是”HEX”时,ME 将GSM alphabet 转换为当前TE 字符;
2) +CSCS 设置的TE 字符集是”HEX”时,ME 将GSM alphabet 的每个7bit 字符转换为用两个IRA 字符表示的十六进制数。 
2. 若<dcs>指定8bit 或UCS2 编码方案,或<fo>设定有UDHI 时,ME 将GSM alphabet 的每个8bit 字符转换为用两个IRA 字符表示的十六进制数。 

2.小区广播:GSM 03.41 CBM 消息内容,格式定义如下:
1. 若<dcs>指定GSM 03.38 default alphabet:
1) 若 TE 字符集(由+CSCS 设定)不使用”HEX”,ME 将GSM alphabet 转换为当前字符集.
2) 若 TE 字符集(由+CSCS 设定)使用”HEX”, ME 将GSM alphabet 每个7bit 字符转换为十六 进制的两个IRA 字符.
2. 若<dcs>指定8bit 或UCS2 编码方案,ME 将GSM alphabet 的每个8bit 字符转换为十六进制的两个 IRA 字符.

1 AT+CSMS 

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 可以接收小区广播

2 AT+CPMS 

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>指定新消息到达后需存储时对应的存储器.

3 AT+CMGF 

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 模式

4 AT+CSCA 

Service Center Address 设置短消息服务中心地址.
AT+CSCA=? 返回OK
AT+CSCA? 返回当前的服务中心地址: +CSCA:<SPACE><sca>,<tosca> 如错误,返回: ERROR,比如:+CSCA: "+8613800755500",145
AT+CSCA= <sca>[,<tosca>]:选择 SM 服务中心地址:如正确,返回:OK;如错误,返回:ERROR.

5 AT+CSCB  

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”(中,英文).

6 AT+CNMI 

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>

7 AT+CMGL 

List Message 列出消息
AT+CMGL=? 返回所有支持的信息状态值: 如正确,返回:+CMGL:<SPACE>(list of supported <stat>s) ,如错误,返回: ERROR,比如:

  • (PDU模式下)+CMGL: (0,1,2,3,4)和
  • (TEXT 模式下)+CMGL: ("REC UNREAD","REC READ","STO UNSENT","STO SENT","ALL")
TEXT 模式下
“REC UNREAD” 已接收未读短消息
“REC READ” 接收且已读短消息
“STO UNSENT” 已保存但未发送短消息
“STO SENT” 已保存已发送短消息
“ALL” 所有短消息
AT+CMGL[= <stat>] 列出消息,返回格式: 
TEXT 模式下(+CMGF=1)且正确执行:
SMS-SUBMIT 或SMS-DELIVER:
+CMGL:<index>,<stat>,<oa/da>,[<alpha>],[<scts>]
[,<tooa/toda>,<length>]<CR><LF><data>[<CR><LF>
+CMGL:<index>,<stat>,<da/oa>,[<alpha>],[<scts>]
[,<tooa/toda>,<length>]<CR><LF><data>[...]]
OK
注:返回的<data>是UCS2 编码
如错误,返回: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

8 AT+CMGR 

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

9 AT+CMGS 

Send Message 发送短消息
TEXT 模式下 (+CMGF=1)AT+CMGS= <da>[,<toda>] <CR> text is entered <ctrl-Z/ESC> 
ME 向网络发送短消息,成功时返回<mr>,当命令正确执行并成功发送时
返回: +CMGS:<mr>.如错误返回: +CMS ERROR:<SPACE><err>.

10 AT+CMSS  

Send Message From Storage 发送已保存的短消息
AT+CMSS=?返回OK
AT+CMSS= <index>[,<da>[,<toda>]] 发送存储器中<index>指定位置的消息(SMS-SUBMIT),存储器由 +CPMS 设置的<mem2>参数选定.成功发送后网络返回<mr>值.如命令正确,返回: +CMSS:<mr>.如错误,返回:ERROR.

11 AT+CMGW 

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

深入浅出AT命令(5)-短信命令

原文:http://blog.csdn.net/ce123_zhouwei/article/details/17307233

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!