打印

【已解决】MC39i模块GPRS上网时接收短信问题

[复制链接]
2430|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dorice|  楼主 | 2008-6-20 15:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位帮帮忙!
我用的是MC39i,协议栈用lwIP,现在GPRS上网和发短信都正常,不过还不知道在GPRS上网的同时怎么接收短信?
AT+CNMI设为1,1和2,1肯定不行的,因为上网时处于数据模式,模块不会发URC过来,但是设为3,1后也不行,还是没有什么变化。听说会发一个字节的0x00过来,不过我发现所有GPRS数据也有这个,还是无法判断是短信还是GPRS数据包。
RING脚处于数据模式时,短信到来不会变化,切换回命令模式后可以收到+CMTI的短信提示。手机拨号RING脚倒是会有反应。
现在只有经常用+++和ATO在数据模式和命令模式之间转换,但是这种转换很费时间,+++就要求停留1秒,因为GPRS数据量较大,这样会导致数据丢失。
不知道怎么才能知道短信到来,然后才切换会命令模式收短信?
网上找了很久,都没有找到很好的解决方法。

相关帖子

沙发
chunyang| | 2008-6-20 16:25 | 只看该作者

这方面需要模块的专门支持,自己是没有什么好办法的

使用特权

评论回复
板凳
dorice|  楼主 | 2008-6-20 17:04 | 只看该作者

MC39i不支持吗?

那么MC39i是不支持了?还有什么方法加快查询速度吗?现在模式转换需要近2秒钟,太慢了!

使用特权

评论回复
地板
chunyang| | 2008-6-20 17:47 | 只看该作者

没办法,只能这样

使用特权

评论回复
5
dorice|  楼主 | 2008-6-20 19:50 | 只看该作者

好像解决了

我仔细看了看PPP的数据包,发现不可能是0x00开头的,之前收到的应该是数据包中间的数据,我忘了判断一个数据包是否结束。现在设置AT+CNMI=3,1后,每当短信过来时会有一个独立的0x00过来,只要判断收到的只有一个字节的0x00,并且上一个PPP数据包已经处理结束,那么我就认为这个是短信提示信息,切换到命令模式接收短信。暂时没发现有什么问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

13

帖子

1

粉丝