2009-11-03 | #1 (permalink) |
高级会员
注册日期: 2009-07-09
住址: 北京海淀
帖子: 192
|
让老手机变成短信平台-AT指令的应用
以NOKIA8250为例。通过8250的红外与PC连接之后,会产生一个虚拟串口,这个串口的序号可能在每台电脑上都不一样。利用这个串口,就可以对手机进行一系列操作,包括发送、接收短信。通过程序操作串口,就可以把这部手机做成短信平台。
在Windows中,打开超级终端,在手机未连接之前,查看连接可使用的串口列表,然后连接手机,再查看列表,多出来的那个串口就是与手机通信的串口。通过该串口连接手机,就可以用AT指令来操作它。 输入AT回车,出现OK,就说明这个串口是支持AT指令的,有可能是手机,也有可能是普通的MODEM。 输入AT+CGMI回车,出现手机厂商信息,例如NOKIA,就说明这是手机,下面就可以进行一系列的操作了。 AT指令有几个实用的规则: 1.输入AT指令然后加“?”,就能列出该指令的当前状态,例如输入AT+CSCS?,就能列出当前手机使用的字符集,例如:+CSCS: "PCCP437"。 2.输入AT指令然后加“=?”,就能列出该指令的可选值,也就是手机所能支持的所有值,例如输入AT+CSCS=?,就能列出手机能支持的所有字符集,例如:+CSCS: ("GSM","HEX","IRA","PCCP437","PCDN","8859-1"),可以通过AT+CSCS="HEX"来设置手机的字符集为HEX。 短信内容的格式有两种,一种是text,一种是PDU,text格式比较简单,但不能发送特殊的短信,例如免提短信,发送中文短信也会乱码。PDU格式则可以发送各种形式(免提,闪烁)和字符集的短信,不过PDU不够直观,需要通过程序来编码解码,例如发送到8613000000000的短信“中文信息”的PDU编码为:0011000D91683100000000F00008A70C4E2D65874FE1606F000D000A,其长度为27。在PDU格式下,短信内容还包含了目标号码,而在text格式下,目标号码和短信内容是分开的。锐方超级SMS控件是一个很好的PDU编解码控件。 与短信相关的AT指令: AT 指令 功 能 AT+CMGC Send an SMS command(发出一条短消息命令) AT+CMGD Delete SMS message(删除SIM卡内存的短消息) AT+CMGF Select SMS message formate(选择短消息信息格式:0-PDU;1-文本) AT+CMGL List SMS message from preferred store(列出SIM卡中的短消息,在PDU模式下,该值为数字,在text模式下,该值为字符串。PDU/text:0/"REC UNREAD"-未读,1/"REC READ"-已读,2/"STO UNSENT"-待发,3/"STO SENT"-已发,4/"ALL"-全部的) AT+CMGR Read SMS message(读短消息) AT+CMGS Send SMS message(发送短消息。在PDU格式下,该值设置为PDU长度,例如30;在Text格式下,该值设置为目标手机号码字符串,例如"8613929239028"。注意,在PDU模式下,手机号码需要加上86开头,否则不能发送。) AT+CMGW Write SMS message to memory(向SIM内存中写入待发的短消息) AT+CMSS Send SMS message from storage(从SIN|M内存中发送短消息) AT+CNMI New SMS message indications(设置是否显示新收到的短信,一般设成2,1,0,0,0,手机收到新的短信后会给PC发一条消息,包含了该短信在内存中的索引号,通过该索引号就可以读出该短信) AT+CPMS Preferred SMS message storage(选择短消息内存) AT+CSCA SMS service center address(短消息中心地址) AT+CSCB Select cell broadcast messages(选择蜂窝广播消息) AT+CSMP Set SMS text mode parameters(设置短消息文本模式参数) AT+CSMS Select Message Service(选择短消息服务) 知道这些之后,就可以通过编程来操作手机。
__________________
[SIGPIC][/SIGPIC] 此帖于 2009-11-03 16:20 被 lihb 编辑。 |