屏蔽模块的接法图解_GPRS模块来电智能屏蔽的设计与实现
摘要:通过基于AT指令的M22 GPRS模块,在VB6.0下利用MSComm控件实现GPRS模块与计算机的串行通信,采用ADO对象模型访问数据库的方式,设计开发了来电智能屏蔽功能。除备案数据内的来电外,其它来电一概自动挂断,实现对来电的过滤和屏蔽。
关键词:GPRS模块;MSComm控件;ADO对象模型;来电智能屏蔽
中图分类号:TP319文献标识码:A文章编号:16727800(2012)008007203
作者简介:王洪革(1968-),男,硕士,吉林警察学院信息工程系副教授,研究方向为信息处理与计算机通信。
0引言
GPRS(General Packet Radio Service)是“通用分组无线业务”英文的缩写,以分组交换技术为基础,采用数据网络协议,将无线通信与Internet紧密结合。GPRS使现有GSM网的数据业务突破了最高速率为9.6kbit/s的限制,最高数据速率可达171.2kbit/s。GPRS作为一种高速、高效、经济的无线系统,具有接入范围广、传输速率高、接入时间短、提供实时在线功能、按流量计费等特点,适合于间断的、突发性的、少量的数据传输。
采用GPRS模块将计算机通过串行通信技术与GPRS无线通信网络建立连接,实现计算机与手机的通信,其组成原理如图1所示。本文在Windows环境下,采用VB6.0中的MSComm控件实现M22 GPRS模块与计算机的串行通信,采用ADO技术访问数据库,实现了来电智能屏蔽的功能。
图1基于GPRS网络的M22模块应用系统组成原理
1串行通信技术
在Windows环境下,串口与外部设备的通信可以利用VB提供的MSComm控件来完成,MSComm控件是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,为应用程序提供了一种通过串行接口收发数据的简便方法。
1.1MSComm控件
MSComm是一种串行通信控件,它提供了两种处理通信的方式:事件驱动方式和查询方式。事件驱动通讯是处理串行端口交互作用的一种非常有效的方法,可以利用 MSComm控件的 OnComm事件捕获并处理通讯事件,OnComm事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,通过检查 CommEvent属性的值事件和错误来查询。每个MSComm控件对应着一个串行端口,如果应用程序需要访问多个串行端口,必须使用多个MSComm控件。
MSComm控件的常用属性有:
(1)CommPort:设置并返回通讯端口号。
(2)Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
(3)PortOpen:设置并返回通讯端口的状态,也可以打开和关闭端口。
(4)Input:从接收缓冲区返回和删除字符。
(5)Output:向传输缓冲区写一个字符串。
(6)InputLen:设置并返回Input属性从接收缓冲区读取的字符数。
(7)InBufferSize:设置并返回接收缓冲区的大小。
(8)OutBufferSize:设置并返回传输缓冲区的大小。
(9)SThreshold:在MSComm控件设置CommEvent属性为comEvSend并产生OnComm事件之前,设置并返回传输缓冲区允许的最小字符数。
(10)RThreshold:在MSComm控件设置CommEvent属性为comEvReceive并产生OnComm事件之前,设置并返回要接收的字符数。
1.2MSComm相关属性设置
由于每个MSComm控件均对应着唯一的一个串行端口号,因此在设备连接好后,需要根据系统的具体配置设置相应的参数,以确保数据通信的正确性,主要设置的参数有设备的端口号、数据传输速率、数据位、奇偶校验位、停止位等。假设连接端口为COM1,数据传输速率为9 600,数据位为n,奇偶校验位为8,停止位为1,则可设置VB的MSComm控件的属性如下:
MSComm.CommPort = 1
MSComm.Settings = "9600,n,8,1"
MSComm.InputLen = 0
MSComm.InBufferSize = 1024
MSComm.PortOpen = True
MSComm.RThreshold = 64
2ADO技术
ADO(ActiveX Data Objects,ActiveX数据对象)是Microsoft公司开发数据库应用程序面向对象的新接口,建立在基于底层数据访问接口OLE DB(Objects Link and Embedding DataBase,对象连接与嵌入数据库)技术上的数据对象。ADO技术对OLE DB进行了封装并实现了OLE DB的所有功能。由于OLE DB提供了一种统一、通用的访问数据源的底层接口,通过OLE DB可以实现对任意数据源的高性能数据访问,能够处理任何类型的数据,不需考虑数据的格式和存储方法,因此ADO通过OLE DB可以访问任何类型的数据源。
使用ADO访问数据库主要有两种方式,一种是使用ADO Data控件,通过对控件的绑定来访问数据库中的数据,即非编程访问方式;另一种是使用ADO对象模型,通过定义对象和编写代码来实现对数据的访问,即编程访问方式。在实际应用中,两种访问方式各有优缺点,可根据数据库应用程序的特点来选择具体的访问方式。
ADO对象模型含有7种对象:Connection对象、Command对象、RecordSet对象、Field对象、Parameter对象、Error对象和Property对象,其中Connection、Command和RecordSet对象是其核心对象。各个对象的作用和对象之间的关系为:首先用Connection对象与服务器建立连接,然后用Command对象执行命令(如查询、更新等),再用RecordSet对象来操作和查看查询结果。Parameter对象中保存的是Command对象的参数信息,在发生了错误后,Error对象提供了出错信息,得到查询结果后,Field对象就能通过RecordSet对象进行使用,它们提供了相关字段的信息。