网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 手机学院 | 邮件系统 | 网络安全 | 认证考试
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 移动短信技术
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.用C#编写发手机中文短信息.
.基于SMPP协议的GSM短消息增值业务.
.CMPP2.0协议升级.
.一步一步搞定手机串口短信收发.
.基于Nokia S60的游戏开发之三.
.simens和motorola铃声图片开发资.
.EMS图片格式转换(Java)程序.
.用C#设计在局域网发送短信的程序.
.SmartPhone手机上查看QQ天气预报.
.Pocket PC Phone Edition SMS编程.
.手机铃声格式规范,midi格式规范.
.利用J2ME在移动设备上实现动画的.
.用C#完成的QuerySMStatusA(华为A.
.移动和联通相关开发协议和规范.
.移动业务代码规范方案.
.SMS基本概念和移动通信系统介绍.
.基于Nokia S60的游戏开发之一.
.免费实用!3步搞定电邮手机推送!.
.手机铃声和图片的详细设计说明.
.用J2ME的通用联网框架开发联网的.

一步一步搞定手机串口短信收发

发表日期:2005-6-18

选择自 DooDu 的 Blog

今天终于把手机AT指令搞定了~~

拿老妈的手机大显的,一个同步线,串口的,还有同步软件。

网上不少关于串口短信收发的文章,但因为AT指令的灵活性,各个手机厂家都做了“继承”和“派生”,因此需要自己研究针对自己手机的 AT指令。

说到得到自己手机的AT指令,我花了不少心思,先是拿Win32DASM打开看同步软件里面的字符串资源,hoho,发现很全的AT指令,可是实现短信收发需要哪些呢?拿标准的AT指令表一看,还好,几乎没怎么变,不过有几个确实不一样。后来发现总是出问题,于是,我拿出了:Serial Monitor,这个真好用啊,监听别的软件的串口通信,监听一大通:


Port opened by process "PCSync_v1.1_Daxian.exe" (PID: 1864)


Request: 2005-6-16 13:01:09.422575464


41 54 2B 43 50 41 53 0D                           AT+CPAS.       


Answer: 2005-6-16 13:01:09.422575464 (+0.0000000000 seconds)


2B 43 50 41 53 3A 20 30 0D 0A 30 0D               +CPAS: 0..0.   


Request: 2005-6-16 13:01:09.922588264 (+0.5000128000 seconds)


41 54 45 30 3B 56 30 0D                           ATE0;V0.       


Answer: 2005-6-16 13:01:09.031966064 (+0.1093778000 seconds)


30 0D                                             0.             


Request: 2005-6-16 13:01:09.031966064 (+0.0000000000 seconds)


41 54 51 30 3B 53 33 31 33 3B 53 34 31 30 3B 58   ATQ0;S313;S410;X
34 3B 26 43 31 3B 26 44 30 3B 2B 43 4D 45 45 3D   4;&C1;&D0;+CMEE=
31 0D                                             1.             


Answer: 2005-6-16 13:01:09.125718464 (+0.0937524000 seconds)


30 0D                                             0.             


Request: 2005-6-16 13:01:09.876070464 (+13.7503520000 seconds)


41 54 2B 57 53 45 53 3F 0D                        AT+WSES?.      


Answer: 2005-6-16 13:01:09.969822864 (+0.0937524000 seconds)


2B 57 53 45 53 3A 20 30 0D 0A 30 0D               +WSES: 0..0.   


Request: 2005-6-16 13:01:09.969822864 (+0.0000000000 seconds)


41 54 2B 57 53 45 53 3D 31 0D                     AT+WSES=1.     


Answer: 2005-6-16 13:01:09.266705464 (+0.2968826000 seconds)


30 0D                                             0.             


上面的是初始化的AT指令,里面有指令显示形式的改变,打开手机终端界面等。

然后我拿同步软件发了个短信,监听如下:

Request: 2005-6-16 13:01:10.986805064 (+0.0000000000 seconds)

41 54 2B 57 53 45 53 3D 31 0D                     AT+WSES=1.     

Answer: 2005-6-16 13:01:10.299313064 (+0.3125080000 seconds)

30 0D                                             0.             


Request: 2005-6-16 13:01:10.299313064 (+0.0000000000 seconds)


41 54 2B 43 4D 47 46 3D 31 0D                     AT+CMGF=1.     


Answer: 2005-6-16 13:01:10.393065464 (+0.0937524000 seconds)


30 0D                                             0.             


Request: 2005-6-16 13:01:10.393065464 (+0.0000000000 seconds)


41 54 2B 43 53 4D 50 3D 31 37 2C 31 36 37 2C 30   AT+CSMP=17,167,0
2C 38 0D                                          ,8.            

Answer: 2005-6-16 13:01:10.502443264 (+0.1093778000 seconds)


30 0D                                             0.             


Request: 2005-6-16 13:01:10.502443264 (+0.0000000000 seconds)


41 54 2B 43 4D 47 53 3D 22 31 33 38 33 32 37 31   AT+CMGS="1383271
30 30 33 38 22 0D                                 ****". '呵呵,屏蔽~  


Answer: 2005-6-16 13:01:10.596195664 (+0.0937524000 seconds)


0D 0A 3E 20                                       ..>            


Request: 2005-6-16 13:01:10.596195664 (+0.0000000000 seconds)


35 42 39 45 39 41 38 43 36 32 34 42 36 37 33 41   5B9E9A8C624B673A
46 46 30 43 34 46 36 30 35 37 32 38 35 45 37 32   FF0C4F6057285E72
34 45 34 38 46 46 31 46 1A                        4E48FF1F.    

这一堆就是短信GSM7位编码的内容了,网上很多,不再赘述。 这个手机省了PDU,大概是在手机里生成吧?方便多了,呵呵


看,最后的1A,这个让我头痛了很长时间,开始总是发不出去,后来才发现少了1A,1A是终止符!

Answer: 2005-6-16 13:01:10.518171064 (+3.9219754000 seconds)


2B 43 4D 47 53 3A 20 31 30 0D 0A 30 0D            +CMGS: 10..0.  


Request: 2005-6-16 13:01:10.518171064 (+0.0000000000 seconds)


41 54 2B 57 53 45 53 3F 0D 41 54 2B 57 53 45 53   AT+WSES?.AT+WSES
3D 30 0D                                          =0.            


Answer: 2005-6-16 13:01:10.627548864 (+0.1093778000 seconds)


2B 57 53 45 53 3A 20 31 0D 0A 30 0D 30 0D         +WSES: 1..0.0. 

以上就是短信发送的整个过程,可同步软件还没有短心接收的功能,自己查了查AT表,找到了:

当有新的短消息到来时,产生提示,使用“AT+CNMI”。该指令的用法:

AT+CNMI=1


如果有新的短消息来到,则手机自动返回下列提示:


+CMTI: “SM”, <index>


此时读出<index>,然后用“AT+CMGR=<index>”指令即可读出短消息内容。


最后再说下vb的串口通信,开始我用的oncome事件,可发现很难用,数据总是有问题,后来改了直接读,方便多了,至于产生新消息的中断,用timer控件就可以了。还有点最重要的,所有指令都有回车符的!也就是vb的VbCr,否则会出错的~~还有,我的波特率是115200,底了也是不通的。

读出来了,剩下的就是字符串处理了,只要注意回来的字符中也有回车符,就可以了。

闲的无聊,又监听了通讯簿,图片上传的功能,都很简单。后来突发奇想,能不能收发彩信呢?难度:1电脑端彩信的制作;2手机商没这个接口指令!后来听说用windows mobile能实现,哎。。又是m$..

Doodu(杜霖)亲笔,转请通知~~

上一篇:SmartPhone手机上查看QQ天气预报 人气:26283
下一篇:基于CMPP3.0的企业短信网关API设计 人气:38168
浏览全部短信的内容 Dreamweaver插件下载 网页广告代码 2009年新年快乐