2009-10-30 | #1 (permalink) |
高级会员
|
利用手机模块实现短消息(一)
短信编程,SMS编程,短信开发技术,短信应用开发,短信软件开发技术;
全球定位系统(gps)系统由于性能优异,在民用上应用范围很广。其可以用于空中交通管理、大地精密测量、摄影测量、监测地壳运动、火山活动、野外调查和勘探的定位、地面沉降、土地塌方,甚至于用于民用如建筑、汽车、旅行探险、狩猎等方面。但是如何将gps定位数据传递到监控中心一直是相应系统关注的焦点。目前,移动子系统和监控中心子系统之间往往通过短消息方式传送数据。这种方式采用通常的无线gsm发送接收设备就能实现短消息的传送,实现简单,具有通信成本低、频谱利用率高、系统容量大、业务种类多、保密性能好、抗干扰能力强、通话质量高、国际自动漫游等优点,它利用信令信道传输,不用拨号建立连接,直接把要发的信息加上目的地址发送到短消息服务中心,由短消息服务中心在发给最终的信宿,是目前应用最广泛的通信方案。 目前,在相关的系统中往往使用手机模块(摩托罗拉、西门子等均有相应的产品)来实现与短消息中心的联系。主要原因在于:使用手机模块利于系统集成,成本较低,而使用手机虽然也可以实现相应功能,但是需要外加数据线,成本相当高。本文主要介绍与短消息开发相关的gsm at指令。 1.相关的gsm at指令 与sms有关的gsm at指令(from gsm07.05)如表1所示: 表1 相关的gsm 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: 0/“rec unread”-未读,1/“rec read”-已读,2/“sto unsent”-待发,3/“sto sent”-已发,4/“all”-全部的) at+cmgr read sms message(读短消息) at+cmgs send sms message(发送短消息) at+cmgw write sms message to memory(向sim内存中写入待发的短消息) at+cmss send sms message from storage(从sin|m内存中发送短消息) at+cnmi new sms message indications(显示新收到的短消息) 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(选择短消息服务) 对短消息的控制共有三种模式: block mode 基于at命令的pdu mode 基于at命令的text mode 使用block模式需要手机生产厂家提供驱动支持,目前,pdu mode 已取代 block mode, text mode比较简单,本文重点介绍模式pdu mode,以西门子公司的产品tc35t为例。 2.计算机与tc35t的通信 (1)rs232串口连接 由于tc35t自带rs232串口线,故只需将其连接到计算机串口即可。打开超级终端,选择相应的串口,将端口参数设置为:速率—4800、奇偶校验位—无、数据位—8、停止位—1、流量控制—硬件。 (2)连接测试 输入“at”然后回车,屏幕上返回“ok”表明计算机与tc35t已连接成功,tc35t能够正常工作。这时就可以测试各类at命令。 当测试命令“at+cmgs=?<cr>”时,如果返回“ok”标明tc35t支持该指令。该指令的完整语法如下: 如果此时tc35t处于pdu mode(即“at+cmgf?<cr>”返回“0”) at+cmgs=<length><cr>pdu is given<^z/esc> 如果短消息发送成功,则返回“ok”,并显示信息号: +cmgs: <mr>[,<ackpdu>] 如果短消息发送失败,则返回如下信息号: +cms error: <err> 如果此时tc35t处于text mode(即“at+cmgf?<cr>”返回“1”) at+cmgs=<da>[,toda]<cr>text is entered<^z/esc> 如果短消息发送成功,则返回“ok”,并显示信息号: +cmgs: <mr>[,<scts>] 如果短消息发送失败,则返回如下信息号: +cms error: <err> 另外,由于使用的是tc35t,当有新的短消息到来时,需要tc35t产生提示,使用指令“at+cnmi”。该指令的完整语法如下: at+cnmi=[<mode>][,<mt>][,<bm>][,<ds>][,<bfr>] 如果有新的短消息来到,则tc35t将自动返回下列提示: +cmti: “sm”, <index> 此时读出<index>,然后用“at+cmgr”指令即可读出短消息内容
__________________
[SIGPIC][/SIGPIC] |