下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 关于使用GSM MODEM设备利用AT指令处理短信的方法.doc

关于使用GSM MODEM设备利用AT指令处理短信的方法.doc.doc

关于使用GSM MODEM设备利用AT指令处理短信的方法&#4…

青山与绿水永相伴
2018-12-28 0人阅读 举报 0 0 暂无简介

简介:本文档为《关于使用GSM MODEM设备利用AT指令处理短信的方法.docdoc》,可适用于综合领域

关于使用GSMMODEM设备利用AT指令处理短信的方法doc关于使用GSMMODEM设备利用AT指令处理短信的方法网上有很多相关的内容我也是遍览各家所长再加上自己的实际试验、应用在前人的基础上做下总结添加点自己经验。也有很多问题还未解决期望高手可以指点一二。一、硬件接口偶使用的是西门子TCiGSM无线通信控制终端具备GSM无线通信的全部功能支持GSM、GSM所定义的的AT指令集。通过串口与计算机相连。二、参数设置、短信收发模式设置短消息的发送和接收控制模式有三种:Block模式、PDU模式和Text模式。使用Block模式需要手机生产厂家提供驱动支持。目前PDU模式已取代Block模式而Text模式不支持中文。因此为了系统的通用性兼容中英文短消息的发送接收建议使用PDU模式来处理短消息。应设置:ATCMGF=PDU方式、新信息处理方式设置ATCNMI=,,,,新收到的短信直接发送至TE终端,不存储在SM卡中、回显设置ATE有回显方便测试、消息服务设置ATCSMS=如果ATCSMS,接收到短信时TE需在一定的时间内发送反馈消息至模块若超时,mode,和,mt,的值会强制复位到。那么再有新的短信将不能被正确处理需要用"ATCNMI”指令重新设置参数才行。这增加了程序处理的复杂性。ATCSMS,时省去了这些麻烦。三、短信发送以要将“你好”发送到信息中心号码为:为例:、PDU数据格式分析应发送的PDU字符串为:FDFAAFD下面对这段PDU数据进行详细分析:()信息中心号码的长度,将F的长度除,格式化成位的进制字符串所得()短信中心号码类型'是TONNPI遵守InternationalE标准指在号码前需加‘’号每一位数字转换为位二进制数数值类型(TypeofNumber):未知国际国内,留作扩展号码鉴别(Numberingplanidentification):未知ISDN电话号码(EE)留作扩展()F短信息中心号码转换方法:如果号码前面有号去掉“”号如果没有“”在号码前加上“”:看看现在号码的长度是否为偶数如果不是在号码后面加上“F”:F将奇数位和偶数位交换得到结果:F()TPDU头字节h=b每一位数字转换为位二进制数应答路径TPRP(TPReplyPath):不设置设置用户数据头标识TPUDHL(TPUserDataHeaderIndicator):不含任何头信息含头信息状态报告要求TPSPR(TPStatusReportRequest):不需要报告需要报告(有些地方写为需要报告,经偶测试是错误的)有效期格式TPVPF(TPValidityPeriodFormat):不提供(Notpresent)整型(标准)预留提供位字节的一半(SemiOctetRepresented)拒绝复制TPRD(TPRejectDuplicates):接受复制拒绝复制信息类型提示TPMTI(TPMessageTypeIndicator):读出(Deliver)提交(Submit)()信息类型()D被叫号码长度,的长度格式化为位进制所得()短信中心号码类型'是TONNPI遵守InternationalE标准指在号码前需加‘’号小灵通为()F被叫号码,转换方法同()()协议标识TPPID每一位转换为位二进制数BitNo与BitNo:如下面定义的分配BitNoBitNo参见GSM协议标识完全定义预留为服务中心(SC)特殊用途分配BitNoBitNo。一般将这两位置为。BitNo:不使用远程网络只是短消息设备之间的协议使用远程网络。BitNoBitsNo:隐含电传grouptelefax语音欧洲无线信息系统(ERMES)国内系统任何基于X的公用信息处理系统Email。()数据编码方案:中文编码为英文或数字,BitNo与BitNoBitNo的编码解码比较复杂,建议在发送纯英文或数字的短信时仍使用中文编码,测试通过BitNo与BitNo:一般设置为BitNo:文本未压缩文本用GSM标准压缩算法压缩BitNo:表示BitNo、BitNo为保留位不含信息类型信息表示BitNo、BitNo含有信息类型信息BitNo与BitNo:默认的字母表bitUSC(bit)预留BitNo与BitNo:ClassClassClass(SIM卡特定信息)Class。()AA有效期TPVP(TPValidPeriod),进制数AA表示短信息被保留的时间为天其计算方法依照表。VP值(进制数)短消息有效长度,(VP)×分钟,时(VP)×分,天×(VP),周×(VP)()用户数据长度TPUDL(TPUserDataLength),FD的长度除格式化为位进制数所得()FD用户数据TPUD(TPUserData),这个就是我们发送的内容"你好"的UniCode码了在PDU模式中发送普通的ASCII字符用,bit编码方式将一串,bit字符编码为,bit数据每个字符可压缩成个。如果发送中文字符则采用UCS编码方式每个中文字符用位的Unicode字符表示将字符串转换为UniCode码的过程网上有很多这里提供DELPHI下的编码函数:***********************************************************functionThreadSmsgstrGbUniCode(text:string):Stringvari,j,len:Integercur:Integert:Stringws:WideStringbeginResult:=''ws:=textlen:=Length(ws)i:=j:=whilei<=lendobegincur:=ord(wsi)FmtStr(t,'X',cur)BCD转换Result:=Resulttinc(i)移位计数达到位的特别处理j:=(j)modendend***********************************************************、发送短信做好了要发送的PDU数据包以后终于可以开始发送短信了。首先发送ATGSM回答OK表明建立连接成功可以测试各类AT指令接着发送ATCMGS=是指将PDU数据中短信中心号码后面的字符串(本例中即为DFAAFD)的长度除以格式化为位的十进制数最大长度为测试过以上就会返回ERROR。但是这里有个问题个汉字编辑成PDU后长度是但是这个字符是汉字和字母数字的组合长度就有可能超过因为每一位的数字或字母也被转为位的UNICODE码。发送长度后GSM会返回>然后我们发送刚才编辑的PDU字符串:FDFAAFD以CTRLZ结束FDFAAFD如果GSM返回:就表示发送成功了。CMGS:是发送短信时产生的顺序号在对方接收到短信发回状态报告时候状态报告中会包含此顺序号OK这里需要注意的是手机返回OK只能确认是成功发送到GSM网络上接收方是否真正收到短信需要通过发送报告得知。有关如何获得发送报告在“发送报告的PDU数据分析”中有说明。四、短信接收、接收中文短信以接收号码发送来的“你好”信息中心号码为:为例手机接收到字符串为:CMT:,FDFFD其中CMT表示新短信指示代码格式为收到短消息立即显示若CMTI则指示收到短消息存储到存储器里是否直接显示是通过CNMI设置的表示PDU数据中短信中心号码后面的字符串长度即DFFD的长度除以下面分析一下接收到的PDU数据:()信息中心号码的长度,将F的长度除,格式化成位的进制字符串所得()短信中心号码类型()F短信中心号码转换方法前面有提到()TPDU头字节()D发送源号码长度的长度格式化为位进制所得()发送源号码类型()F发送源号码()协议标识TPPID()数据编码方案:中文编码为英文或数字,BitNo与BitNo()日期时间奇偶互换:::,有论坛上写接收到的是„„就是前面有’’,表示„但是我用不同的手机发送短信过来接收到的都是,无法取得,不知道是发送方手机设置的问题还是哪里的问题,还在研究中()时区()用户数据长度TPUDL(TPUserDataLength),FD的长度除格式化为位进制数所得()FD”你好”的UNICODE码,同样提供一个DELPHI下的解码函数:、接收纯英文或数字上面例子中接收到的是中文短信“你好”那么当接收到的短信是纯中文或者数字的时候又如何解码呢,例如接收到发送的英文短信“hello”,手机接收到的字符串为:CMT:,FDFFC前面编码的意义和中文信息相同这里不再重复只从红色的说起:先前提到了这两位表示数据编码方案为中文编码为英文或数字当手机发送普通的ASCII字符即使用,bit编码方式说明我们接收到的短信是英文或者数字格式的而不是中文UNICODE码仍然是用户数据(FC)长度除格式化为位进制数所得FC就是发送方发送过来的短信息根据前面的我们知道这是一段bit码而不再是UNICODE码bit的解码过程很复杂大体过程是:将源数据每个字节分为一组解码成个字符。基本自然是:将第n个字节左移n位再加上前一字节的剩余数据即第(n,)个字节右移(,n)位的数值屏幕最高位即得到一目标字符数据n,„。第个字节右移位就得到解码后的第个字符数据。BCBCB五、串口通讯知道了如何发送短信和如何解码收到的短信关键的问题是在实际开发中怎样向GSMMODEM发送AT指令以及获取GSMMODEM接收到的信息呢,这就需要使用串口通讯控件由于DELPHI没有提供此类控件本文来自CSDN博客转载请标明出处:表‘卖出项目子项目IMEIIMSI手机号服务时间省份城市表‘库存IMEI子项目项目入库时间出库时间出库省份出库城市出库标识:在库存:以出库

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/10

关于使用GSM MODEM设备利用AT指令处理短信的方法&#46;doc

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利