图5-5 代码窗口
每个窗体都有各自的代码窗口,打开代码窗口有以下三种方法:
(1) 从工程窗口中选择一个窗体或标准模块,并选择“查看代码”按钮; (2) 从窗体窗口中打开代码窗口,可用鼠标双击一个控件或窗体本身; (3) 从“视图”菜单中选择“代码窗口”命令。 代码窗口主要包括:
(1)“对象”下拉式列表框:显示所选对象的名称。可以单击右边的下拉按钮,来显示此窗体中的对象名。其中“通用”表示与特定对象无关的通用代码,一般在次声明模块级变量或用户编写子定义过程。
(2)“过程”下拉式列表框:列出所有对象对应于“对象”列表框中对象的事件过程名称。在对象列表框选择对象名,在过程列表框中选择事件过程名,即可构成选中对象的事件过程模板,用户可在该摸板内输入代码。
(3)“代码”框:输入程序代码。
(4)“过程查看”按钮:只能显示所选的一个过程。 (5)“全模块查看”按钮:显示模块中全部过程。
5.3 MSCOMM控件
微软的软件系统中.提供了MSComm通讯控件。该控件在windows ystem 目录下,通讯控件是PC机通过串行端口与其它设备实现轻松连接的利器.Visual basic等开发人员都可以使用它通过使用MSComm通讯控件,可简单高效的实现设备之间的通讯,而不必调用低级的API函数,从而使编程效率大大提高.也降低了因编程不当导致系统不稳定。
利用Mscomm控件完成一般的数据通信,使用此控件还是非常方便的,在接收数据方面可通过OnComm事件响应从而用Input属性从此控件的接收缓存区获得数据,在发送数据方面是通过给此控件的Output属性赋值来实现。在发送和接收时
21
通过改变Output和Input的属性的类型来改变接收到的数据:若设置为字符串类型,则按文本方式发送或接收;若设置为字节数据,则按二进制数据格式发送或接收。
MSC0mm控件的主要属性:
1)commPorL:设置并返回通讯端口号,在设计时,value可以设置成从1到16的任何数(缺省值为 1),注意:必须在打开端口之前设置CommPort属性;
2)Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位,设置的格式为“BBBB,P,D,S”,BBBB为波特率,P为奇偶校验,D为数据位数,S为停止位数;
3)PortOpen:设置并返回通讯端口的状态。也可以打开和关闭端口.title表示串口打开;
4)Input:从接收缓冲区返回和删除字符; 5)Output:向传输缓冲区写一个字符串;
6)InputMode:设置发送和接收数据的类型,0表示文本的方式.1表示二进制的方式;
7)Rthreshold:设置CommEvent属性为comEvReceive并产生OnComm之前.设置并返回的要接收的字符数,若Rthreshold属性设置为0(缺省值)则不产生OnComm 事件;
8)SThreshold:MSComm 控件设置CommEvent属性为comEvSend.并产生OnComm事件之前.设置并返回传输缓冲区中允许的最小字符数.若设置Sthreshold属性为l,当传输缓冲区完全空时.MSComill控件产生OnComm事件。如果在传输缓冲区中的字符数小于value,CommEvent属性设置为comErSend.并产生0nComm 事件:
9)InputLen、Input:收缓和发送缓冲区字符数或字节数:
10)comEvent:该属性列出了控件触发事件的类型和具体的事件活错误MSCOMM只有一个OnComm事件.只要eomEvent的值一改变.就会触发该事件.这表示发生了一个通信错误或事件。 MSC0mm控件的主要事件:
OnComm事件:当CommEvent属性的值发生变化时,就触发此事件,标志发生了一个通信事件或错误。如果CommEvent属性值发生了变化,而通信事件又未发生,就必然出现错误。CommEvent属性中含有触发OnComm事件的真正错误或事件的标识代码。
MSComm控件进行串行通信的一般步骤为:
1)设置通信对象、通信端口号及其他属性; 2)设定通信协议;
3)打开通信端口,进行数据的传送;
22
4)关闭通信端口; MSComm控件通信方式的选择:
MSComm控件有两种处理通信的方式,即事件驱动和查询方式。事件驱动方式是处理串行通信的一种有效的方法,它可以利用OnComm事件捕获并处理通信中发生的事件或错误,实时性较强。而查询方式是在程序通过查询CommEvent属性的值来判断通信过程中的事件或错误.这种方式适合于应用程序较小、实时性要求不高的系统中 。
利用MSCOmm控件发送数据:
MSComm控件提供了一个Output属性.它能简化对数据的发送.Output属性可以往发送缓冲区中写入一串数据,它在设计阶段是无效的.在运行阶段也只能写入。其引用方法如下:
MSComm.Output[=value]
其中.Value参数表示一串要写入到发送缓冲区中的字符。Output属性可以发送文本数据,也可以发送二进制数据。如果要发送文本数据.Value就必须是含有字符串的Variant数据;如果要发送二进制数据,Value就必须是含有Byte数组的Variant数据。
下面的示例程序是利用MSComm控件的Output属性发送数据:
Private Sub RichTextBox— KeyPress(KeyAscii As Integer) ’将键盘键人的字符传给RichTextBox控件和MSComm1控件 Dim OutS as Variant MsComm 1.CommPort=1 MsComm 1.PortOpen=True OutS:Ch KevAscii1 MsComm 1.Output=OutS End Sub
利用MSComm控件接收数据:
利用MSComm控件的Input属性可以接收数据。
Input属性从接收缓冲区中返回一串数据,它在设计阶段是无效的,在运行阶段也只能读。Input属性的返回类型为Variant。
InputLen属性值决定着Input属性读取的字符个数。将InputLen设为0,意味着利用Input属性读出接收缓冲区中的所有内容。
InputMode属性值决定着Input属性接收的数据类型。如果InputMode设为ComInputModeText,就可利用Input属性返回文本数据;如果InputMode设为ComIn.
putModeBinary,则返回Byte数组中的二进制数据。 下面的示例程序是利用MSComm控件的Intput属性接收数据:
23
Private Sub Commandl— Click0
’用户单击Commandl按钮后读取输入缓冲区中的内容 Dim InS as String MsComm 1.InputLen=O
If MsComm 1.InBuferCount Then InS=MsComm 1.Input End If MsgBox InS
MsComm 1.PortOpen=False End Sub 开发步骤: 1、创建新的工程
① 启动Visual Basic 6.0
②在“文件”菜单中,单击“新建工程”,选择“标准.exe”. 单击确定 2、加人MSComm控件
① 在“工程”菜单中单击“部件”.显示“部件”对话框 ② 选定“Microsoft Comm Control 6.O”控件名称左边的复选框 ③ 单击”确定”关闭“部件”对话框,MSComm控件将出现在工具框中 ④ 将MSComm控件添加到窗体上 添加MSComm控件如图5-6所示。
图5-6 添加MSComm控件图
3、属性设置
下面通过一个实例具体说明。实例用于接收和发送不定长数据包,该仪器的通信协议如下。链路层:8位数据位、l位停止位、无奇偶校验、19200波特率CommPotr 设置并返回通讯端口号。l~16,设置:1为COM1口。
24
InBufferSize 设置并返回接收缓冲区的大小,以字节数为单位。设置:16 500。
InputMode 设置并返回数据输入方式。设置:comlnputModeBinary输入为二进制数据。
OutBufferSize 设置并返回输出缓冲区的大小,以字节数为单位。设置:512。 Rthreshold 设置并返回要接收的字符数。当接收缓冲区中的字符数大于等于该值时,将产生
OnComm事件。设置:1O
Setting 以字符串形式设置或返回波特率、奇偶校验、数据位和停止位。设置:19 200,n,8,1 4、编写代码
在窗体中加入一个组合框控件,名称为Comboport,用于选择设置通讯端口。加入一个命令按钮,用于控制通讯。加入一个通讯控件,名称为MSComml。加入一个文本框控件,名称为Textl,用于显示接收的数据。
实现的界面如图5-7所示。
图5-7 短信息收发界面
25
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库基于VB实现短信息收发功能(6)在线全文阅读。
相关推荐: