AT指令短信猫通讯中起着重要的作用,能够通过AT指令控制手机的许多行为,包括拨叫号码、按键控制、传真、GPRS等。
AT指令基本用法:
1. 测试命令(Test Command)
在AT指令后面加上“=?”即构成测试命令。例如“AT+CSCS=?”会列举出所有支持的字符集。
2. 读取命令(Read Command)
在AT指令后面加上“?”即构成读取命令。例如“AT+CSCS?”会列举出当前设置。
3. 执行命令(Execute Command)
一般而言在AT指令后加上“=”及命令参数即可。有些命令例如AT+CMGR命令没有参数,直接就可以执行。
以WAVECOM GSM MODEM为例,其常用的AT指令集及开发参考如下:
指令名称 |
用法 |
说明 |
CSMS |
选择信息服务 0兼容GSM07.05 Phase 2 version 4.7.0 1兼容GSM07.05 Phase 2+ version |
|
T+CSMS=0 +CSMS: 1,1,1 AT+CSMS=1 +CSMS: 1,1,1 |
SMS-MO SMS-MT SMS-CB(小区广播) 全部支持 |
CNMA |
新SMS收到确认 |
|
CPMS |
首选的SMS存储区 SM为SIM卡区,BM为内存区,缺省为SM |
|
AT+CPMS=? +CPMS: (("SM","BM"),("SM")) AT+CPMS="SM" +CPMS: 3,25,3,25 AT+CPMS="BM" +CPMS: 0,20,3,25 |
(1)为读和删的信息 (2)为写和发的信息 已用1,总共1,已用2,总共2 |
CMGF |
设置SMS编码方式(1文本格式,0为PDU格式) |
|
CSAS |
存储CSCA与CSMP的相关信息于E2PROM |
|
CRES |
从E2PROM中恢复相关信息 |
|
CSDH |
显示文本格式参数(1为显示,0为不显示) |
|
AT+CDSH=1
+CMT: "+8613501154105",,"01/09/12,18:04:09+32",145,4,0,0,"+8613800100500",145,3 AAA
AT+CSDH=0 +CMT: "+8613501154105",,"01/09/12,18:04:48+32" AAA |
相关的信息有+CMTI,+CMT,+CDS,+CMGR,+CMGL
左边两个例子同样是发送和接收AAA为内容的SMS |
CNMI |
SMS的输出方式 |
|
AT+CNMI=2,2,0,0,0
+CMT: "+8613501154105",,"01/09/13,11:04:09+32" AAA
AT+CNMI=2,1,0,0,0
+CMTI: "SM",4 |
其中第2位决定SMS直接输出还是保存于"SM"中
左边两个例子同样是发送和接收AAA为内容的SMS,为0则不接收 |
CMGR |
读取存于"SM"中的信息 |
|
AT+CMGR=1 +CMGR: "REC READ", "+8613501154102",,"01/08/14,10:46:47+32" X000E8
AT+CMGR=4 +CMGR: "REC UNREAD", "+8613501154105",,"01/09/13,11:02:06+32" AAA
AT+CMGR=2 +CMGR: "REC READ", "+8613501154105",,"01/08/23,16:32:34+32" DCS format error at+cmgf=0;+cmgr=2 +CMGR: 1,,26 0891683108100005F0040D91683105114501F500081080326123432306004400460044 |
读取第1条 来源13501154102
读取第4条 来源13501154105
读取第2条时遇到DCS格式错误,转成PDU格式后,读出数据 来源13501154105 |
CMGL |
信息列表,(+CMGL:索引,类型,,长度<内容>= |
|
AT+CMGL=4 +CMGL: 1,1,,26 0891683108100005F0040D91683105114501F20000108041016474230658180C56C401 +CMGL: 2,1,,26 0891683108100005F0040D91683105114501F500081080326123432306004400460044 +CMGL: 3,1,,32 0891683108100005F0040D91683105114501F50008108032617492230C003400310032 003100320033 +CMGL: 4,1,,23 0891683108100005F0040D91683105114501F500001090311120602303C16010 |
类型 "REC UNREAD" 0 "REC READ" 1 "STO UNSENT" 2 "STO SENT" 3 "ALL" 4 |
CMGS |
发送SMS,可按文本方式或PDU方式 |
|
AT+CMGF=1 OK AT+CMGS=13501154105 > AAA<^Z> +CMGS: 204 OK
AT+CMGF=0 OK AT+CMGS=18 >0011000D91683105114501F500040103414141<^Z> +CMGS: 205 OK |
按文本方式发送
按PDU方式发送 |
CMGW |
写信息到存储器 |
|
AT+CMGW="+8613501154105" > AAA<^Z> +CMGW: 5 OK
AT+CMGW=<lengh><CR><pdu><^Z> |
按文本方式写入
按PDU方式写入 |
CMSS |
从存储器中发送信息 |
|
AT+CMSS=5 +CMSS: 207 OK
+CMT: ,23 0891683108100005F0040D91683105114501F500001090316163932303C16010
AT+CMSS=5,+8613501154102 +CMSS: 210 OK |
发送存储器中的第5条信息
收到信息
也可将第5条信息发送到指定用户 |
CSMP |
设置文本格式参数,+CSMP:<fo><vp><pid><dcs> |
|
AT+CSMP?
+CSMP: 1,167,0,0 |
其中为信息有效期, 167默认 0-143:(VP+1)*5分钟 143-167:12小时+(VP-143)*30分钟 168-196:(VP-166)*1天 197-255:(VP-192)*1周 |
CMGD |
删除信息,AT+CMGD=<索引> |
|
CSCA |
短信息服务中心号码 |
|
at+csca? +CSCA: "+8613800100500",145 OK |
北京短信息服务中心号码 |
CSCB |
选择小区广播信息类型 |
|
WCBM |
小区广播信息标识符 |
|
WMSC |
信息状态更正 |
|
WMGO |
信息重写 |
| |