基于gsm短信订票系统毕业设计(编辑修改稿)内容摘要:
件驱动的方式、功能完备的程序。 MSComm 控件通信有事件驱动和查询两种途径。 事件驱动的功能很 强大,通信的方式类似于其他程序设计的中断方式,若串口发生了事件, MSComm控件就会产生 OnComm事件,用户就可以通过程序查询并做出相应的对策。 一旦接收缓冲区里面有数据产生,程序就可以利用 MSComm控件中的OnComm事件查询该行为,然后核查 CommEvent 的属性值来查询该行为。 查询方式可以定时或者不定时查询 CommEcent 的属性值来捕捉事件,以便做出相关的应对。 MSComm 控件属性 ⑴ 、 CommPort 属性,用来设置或者返回端口号。 =Value, Value 可以设置 116 之间的整数值,表示 COM1 等 COM 口。 ⑵ 、 InputLen属性,设置返回接收缓冲区接收的字符。 =X, X 为 0时为缓冲区所有内容。 ⑶ 、 Input 属性,返回删 除 接收缓冲区的数据。 =, XX 为文本框的名称。 ⑷ 、 OutPut 属性,向缓冲区写数据。 =Value, Value 值可以是 二进制数据或者文本数据。 ⑸ 、 PortOpen属性,设置或者返回通信口的状态。 =Value, Value 为boolean值,为 True 或者 False。 ⑹ 、 Settings 属性,设置返回参数。 =Value, Value 用来设置波特率(9600bit/s)、奇偶检验位 N、 8 位的 数据位 1 位的 停止位。 五邑大学本科毕业设计 5 ⑺ 、 OutBufferSize 属性,设置或者返回缓冲区的大小。 =Value,Value 为 Integer 型。 ⑻ 、 InBufferSize 属性,设置或者返回接收缓冲区的大小。 =Value,Value 为 Integer 型。 ⑼ 、 SThreshold 属性, OnComm 发生前,设置返回发送缓冲区允许最小字符数。 MSComm1. SThreshold=X, X 为 0(不产生 OnComm事件)或者 1(产生 OnComm 事件)。 ⑽ 、 RThreshold 属性, OnComm发生前,设置返回接收缓冲区允许接收的字符。 MSComm1. RThreshold =Value, Value 为 0(不产生 OnComm事件)或者 1(产生 OnComm事件)。 MSComm 控件的触发事件 MSComm 控件通过把十七个事件统一为 OnComm 这一事件,用 CommEvent 属性中的十七个值来判断不同的触发事件。 CommEvent 属性只在运行的时候有效并为只读,用来返回最靠近的通信错误或者事件。 所以在触发事件时,可以检查 CommEvent 属性的值来判断。 假如 OnComm事件发生, CommEvent 的参数也会随着变化,所以用户可以在对应的选择语句后面编程序处理该触发事件。 AT 指令的应用 设备控制 MS 是通过 AT 指令的发送,而且可以与全球移动通信系统进行相互交流。 数据终端设备把 AT 指令发送到终端的数据电缆终接设备上。 所以发送 AT 指令可以 落实信息 发送接收、呼叫 有效 、在 异样的 单元进行数据传输。 本系统用到的 AT 指令如下: ⑴ . AT + CMGD = index ,删除 SIM 卡 里面的内容 , index为删除 SIM 卡内容 的序号,可以是任何整数。 可 去掉 一个甚至是若干个短信。 返回值(例如): AT + CMGD = 1 OK 保存 序 列是 1 的 信息 成功 去掉。 ⑵ . AT + CMGF = index ,选择短消息接收发送的格式, 0 为 PDU模式, 1 为文本模式,如 = AT + CMGF = 0 返回值: OK 此时 信息 的 取出 是以 PDU方式。 ⑶ . AT + CMGL = X ,列出 手机 卡里面的信息,即列出 SIM 卡中存储的信息,可 以读取多条短信,但是 AT + CMGR 只能 取出 一条短信。 Index值的设置如下: 0—取出手机 卡中还 没 读取的短信 1—取出手机 卡中已经 被 读取的短信 五邑大学本科毕业设计 6 2—取出手机 卡中的草稿 3—取出手机 卡中已经 被 发送的短信 4—取出手机 卡内所 保存 的短信 返回值(例如): + CMGL : 1,0,24 089168310820xx05F0040D91685119542027F00008314081311501230467095173 + CMGL : 1,0,24 : 1 是信息的编号,在手机中的位置; 0 代表短信的类型, 是未读取的意思; 24 是短信的长度。 089168310820xx05F0040D91685119542027F00008314081311501230467095173 这串长数据里面包含了短信中心号码、对方 的 手机号码、 收到 时间、用户数的内容。 ⑷ . AT + CMGR = index,读取 SIM 卡内第几条短信。 信息是从 + CPMS 中的命令设置的存储器中读取的。 返回值(例如): ① 当 AT + CMGF = 0 时,读取短信以 PDU的格式 + CMGR : 1,24 089168310820xx05F0040D91685119542027F0000831407191928123044F604EEC 1— 状态:状态 24—PDU串的长度 ② 当 AT + CMGF = 1 时, 取出信息的 模式以 text 的方式。 + CMGR : REC READ,+8615914502720,13/04/18,13:51:10+32 其中: + 8615914502720 为接收号码; 13/04/18,13:51:10+32 为接收时间,包含 时区。 ⑸ . AT + CNMI = mode , mt , bm , ds , bfr , 展现 收到的新信息,用来选择从SMSC 收 到的新 的信息。 ① mode 通知 TE 0—将 告知并且存储 ,再根据 mt的值发送 1— 此时数据线 没数据 ,并且 告知 TE 2— 此时数据线 没数据 ,并且 告知 TE,否则保存起来。 3—直接 告知 TE,若数据线 有数据 时, 告知 TE 的 短信 混合数据一起 传送 ② mt 编辑信息保存的 位置和 告知 TE 0—收 到的 信息 被 保存 在默认的 地方 中,不 告知 TE 1— 收到的 信息 被 保存 在默认的 地方 中,而且 告知 TE 2— Class2 的短信,被存储 在 SIM 卡中,而且 告知 TE,其他 类型的 class 短信,直接发到 TE 3—Class3 的短信,被直接发到 TE ③ ds 小区广播 0—小区广播到来不通知 五邑大学本科毕业设计 7 2—新的小区广播通知 3— 通知 class3 的小区广播 ④ bfr 一直是 1 返回值(例如): + CMTI : SM,10 信息 , 保存 在 SM 内存中。 序号是 10 ⑹ AT + CPMS = mem1 [, mem2 ] [ , mem3 ],选择 短信保存 位置 返回值(例如): + CMS ERROR: 517 短信 PDU 模式 与 TEXT 模式 短信模式有 Text 和 PDU两种模式, PDU 模式全称是 Protocol Data Unit,协议数据单元。 Text 模式可运用不同的字符,并且接收到的数据是纯文本的。 接收的短信能够直接把手机号码,接受时间显示出来。 由于接收不了中文的字符,只能接受 ASCII 码,所以对于我们国内手 机来说实现起来不太方便,因此就用 PDU码发送。 PDU模式 重要 是短信的中心地址、文件的头信息、 短信 的类型、发送 的 目的地址、协议的标识、数据的编码模式、信息的有效 性 、用户 信息的 长度以及用户 信息 组成。 PDU模式下的短信内容首先经过 16 进制的 编码,此时 就好像是 一个数据包,该包作为 1 种数据单元, 是 消息的信息构成。 里面 拥有 短信有效时间、数据的格式、目的地址、协议类型、正文。 短信内容最长可以是 140 字节,都由 16 进制构成。 况且 PDU模式不但能够 容纳 中文短信,而且还有三种中文短信的编码, 7bit、 UCS2 和 8bit。 其中最常用的是 UCS2 编码,用来发送 Unicode 字符。 PDU码由十三个字母组成,字母 A 至字母 E。 所以一般都以 PDU码的方式发送短信,但是 PDU码需要特定的函数将文本信息转换为 PDU的格式,这一点相对比较困难。 首先我们来了解一下 UCS2 编码的原理。 按照 ISO/IEC10646 的规定, UCS2 编码是将单个字符转换成 16位的 Unicode 字符。 即转换成四位十六进制组成的字符串。 PDU 表面上是 ASCII 码,由十六进制组成。 但是除了发送的消息外,里面还含有其他的信息,如手机号码,服务中心号码,时间等。 PDU的 AE 项如下 : A— SMSC 地址的长度。 由两位 16 进制构造,即一个字节 B— SMSC 号码的类型。 由两位 16 进制数构成。 C— SMSC 的号码, B 加 上 C 的长度是由 A 的数据所 确定 的, D— 文件的头信息。 由两位 16 进制数构成 E— 信息的类型。 由两位十六进制数构成。 F— 被叫号码的长度。 由两位 16 进制数构成 G— 被叫号码的类型。 由两位 16 进制数构成 五邑大学本科毕业设计 8 H— 被叫的号码,其中长度由 F 中的数据所决定 I— 协议的标识。 由两位十六进制构成 J— 数据的编码方式。 由两位 16 进制构成 K— 信息的有效期。 由两位 16 进制构成 L— 短信内容的 总长度。 由两位 16 进制构成 M— 短信内容 ,长度是 L中的数 据 所确定 的。 J 中设置 运用的是 USC2 编码 模式 对接收缓冲区中的 PDU码进行分析 08 91 68310820xx05F0 04 0D 91 685119542027F0 00 08 31408191150323 04 4E3B54AF 08SMSC 的地址信息长度,共 八 位字节 91短信服务中心地址的格式( TON/NPI)。 国际格式的号码前面加 “+” 68310820xx05F0短信中心的地址,所用服务中心的地址。 由于编码的时候,若不足偶数位,则在后面补个 “F”。 编码时是奇偶位交换。 解码时先奇偶位 互换为 861380020xx00F,去掉后面的 F 后为 861380020xx00,去掉 86, 1380020xx00 就为短信中心的地址。 04首字节,若是 04 证明还有短信, 00 就没有短信了。 0D被叫号码的长度,一共 13 个十进制数,里面不包含 91 和 F 91目标地址格式,国际格式的号码前面要加 “+” 685119542027F0目标地址,编码时不足偶数位,在后面加 “F”。 编码时是奇偶位交换,解码时先奇偶交换为 8615914502720F,去掉后面的 F,为 8615914502720,去掉 86,86 为中国的区 号,剩下 15914502720 为接收的手机号码。 00短信的数据类型,作为 一般 的 GSM 类型,属于 Point to Point 的方式传送, 00 作为文本数据, 11 是铃声图片等数据。 08编码方式为 UCS2。 0 是 PDU编码; 08 是 16Bit。 00 是 7Bit。 国内采用的 UCS2 编码是用 Unicode 方式,能够支持英文、中文或者中英文的混合发送。 31408191150323接收的时间,是为了标识每一个短信,所以给每条短信加上的标号。 这个时间是指短信到达短信服务中心的时间,能够精确到秒位。 所以可以确保在同一秒内到达的消息能有不同的时间。 编码的时候奇偶交换,解码时为 13 年、 04 月、 18 日、 19 时、51 分、 30 秒,后面的 23 代表时区,译回来为 32。 时区中的 32 是用 32/4=8,作为东 8 区,是北京时间。 04短信信息 的长度, 16 进制表示,为 4 个字节 4E3B54AF信息内容,用 Unicode 方式解码,得到的短信内容为 “”。 本章小结 本章主要介绍了系统的软硬件组成,串行接口 RS232 的标准 ,系统用到的串口是RS232 转 USB 接口。 系统主要模块 GSM 的功能 , 运用的西门子 TC35 模块的, VB 中的MSComm 控件,控件属性、控件触发事件,系统运用到的 AT 指令,与及短信通信主要的两种模式。 这章的内容相对来说比较重要,主要是能够使 VB 界面连接上 GSM 模块,对收到 的 信息 运用 AT 指令进行 取出。 五邑大学本科毕业设计 9 第 3 章 设计思路 系统硬件与软件 本系统用到的硬件主要是西门子的 GSM 模块,该 GSM 无线模块是集成的模块,内部含有标准的 RS232 接口及 SIM 卡的卡槽。 RS232 转 USB 串口、手机一台(内含 SIM 卡)、SIM 卡一张、计算机。 软件有 Visual Basic 中文版 、。基于gsm短信订票系统毕业设计(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。