通过RS232发送和接收短信(三)
2015-11-12 00:00
225 查看
接收短信
接收刚收到的短信有两种方法:轮询终端;使用事件
轮询终端可以定期的使用AT+CMGL=0指令读取未读取得指令。方法简单,但许多时候都在做无用功,效率低下,一般不建议采用。下面主要讲解事件法:
指令:
AT+CNMI=<mode>,<mt>,<bm>,<ds>,<brf>
参数:
mode:
0——缓存在终端
1——直接发送到TE
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
接收刚收到的短信有两种方法:轮询终端;使用事件
轮询终端可以定期的使用AT+CMGL=0指令读取未读取得指令。方法简单,但许多时候都在做无用功,效率低下,一般不建议采用。下面主要讲解事件法:
指令:
AT+CNMI=<mode>,<mt>,<bm>,<ds>,<brf>
参数:
mode:
0——缓存在终端
1——直接发送到TE
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
相关文章推荐
- js 获取当前url的参数
- 使用Supervisor守护Python进程
- ZBrush®UV如何制作
- 设计模式6大原则:里氏置换原则
- 蜂窝教育:Android与iOS平分天下
- 回声客户端的实现
- 实现迭代服务端和客户端
- 自定义适配器
- sencha cmd项目主题修改
- 面向对象程序设计上机练习十二(运算符重载)
- window 安装 pip 链接
- 如何在终端中启动程序到后台运行
- Web 安全渗透学习路线
- 安全网站推荐
- Web 安全渗透学习路线----1Web安全相关概念
- 时间戳
- UIKit 手写控件 UIImageView 和UITableView
- node.js
- 拒绝过劳死,码农们如何养生?
- 手拿拐杖比乞丐苦的程序员啊