接收短信缓存
接收刚收到的短信有两种方法:轮询终端;使用事件spa
轮询终端能够按期的使用AT+CMGL=0指令读取未读取得指令。方法简单,但许多时候都在作无用功,效率低下,通常不建议采用。下面主要讲解事件法:事件
指令:效率
AT+CNMI=<mode>,<mt>,<bm>,<ds>,<brf>终端
参数:程序
mode:方法
0——缓存在终端参数
1——直接发送到TEindex
mt:
0——接收到新的SMS不返回事件
1——若是接收到的SMS存储在ME,则返回
+CMTI:<mem>,<index>
2——除了Class2 SMS,新的SMS直接发送到终端,返回:
+CMT:<length><CR><LF><PDU>
3——Class3 SMS使用mt=2的方法返回,其余类型的使用mt=1的方法返回。
bm:
0——小区广播不通知
2——新的小区广播通知,返回
+CBM:<length><CR><LF><pdu>
3——Class3格式的小区广播通知,使用bm=2格式
ds:
0——状态报告不通知
1——新的状态报告通知,返回:
+CDS:<length><CR><LF><pdu>
2——若是新的状态报告存储到ME,则返回:
+CDSI:<mem>,<index>
brf:
1——始终为1
例:
通常咱们使用AT+CNMI=1,1,0,2,1
当收到新的短信时终端返回:
+CMTI:ME,5
新的状态报告:
+CDSI:ME,6
程序能够经过判断返回值并使用AT+CMGR指令返回新到短信。
转自bbs.sendsms.cn