转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件使用 >> 常用软件 >> 正文
在VFP6.0中控制串行端口传输和接收         

在VFP6.0中控制串行端口传输和接收

作者:闵涛 文章来源:闵涛的学习笔记 点击数:707 更新时间:2009/4/24 21:42:25

[摘要]本文详述ActiveX的MSComm控件在VFP6.0中实现控制串行端口操作方法,并提供具体实现的样本源程序。

[关键词] ActiveX 控件 MSComm OLE

  1. 引言

    VFP6.0提供了一个非常完整的OLE(对象链接嵌入)的环境,扩展了它与其他应用程序之间进行数据交换的手段和能力, 本文详述ActiveX的MSComm控件实现的串行端口传输和接收方法,同样也支持VB6.0和WEB程序。

  2. 安装相应的ActiveX 控件

当您在平台上安装好VFP6.0时,就包含了本文的ActiveX控件,而且也注册(Register)在平台中,所以您可在VFP6.0环境中主菜单的工具(TOOL)栏,单击选项(O),找到控件项,在点击ActiveX控件,选择(Microsoft Communications Control) 后,按确定键返回。下图为设计的样本:

按钮对象 Click Event 事件过程的内容

ThisForm.Olecontrol2.portopen=.T.

通信控件Olecontrol2 的 OnComm事件过程的内容

*** ActiveX 控件事件 ***

ThisForm.Text1.value=ThisForm.Olecontrol2.input

三. 通信控件Olecontrol2(MSComm 控件)属性说明

MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。它提供下列两种处理通讯的方式:

事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。

在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的读写端口程序,则没有必要对每接收一个字符都产生事件

每个使用的 MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。可以在 Windows“控制面板”中改变端口地址和中断地址。

尽管 MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。

属性

描述

CommPort

设置并返回通讯端口号。

Settings

以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。

PortOpen

设置并返回通讯端口的状态。也可以打开和关闭端口。

InputLen

设置并返回 Input 属性从接收缓冲区读取的字符数。

Input

从接收缓冲区返回和删除字符

Output

向传输缓冲区写一个字符串。

1. CommPort 属性(设置并返回通讯端口号。)

语法 : object.CommPort[ = value ]

CommPort 属性语法包括下列部分:

部 分

描 述

Value

一整型值,说明端口号。

Object

对象表达式,其值是“应用于”列表中的对象。

说明:

在设计时,value 可以设置成从 1 到 16 的任何数(缺省值为 1)。但是如果用

PortOpen 属性打开一个并不存在的端口时,MSComm 控件会产生错误 68(设备无效)。

警告: 必须在打开端口之前设置 CommPort 属性。

2. Settings 属性(设置并返回波特率、奇偶校验、数据位、停止位参数。)

语法 : object.Settings[ = value]

Settings 属性语法包括下列部分:

部 分 描 述


object 对象表达式,其值是“应用于”列表中的对象。

value 字符串表达式,说明通讯端口的设置值,如下所述。

Settings 示例

下面的例子设置控件端口通讯,波特率 9600,无奇偶校验检查,8 个数据位,1 个停止位:

MSComm1.Settings = "9600,N,8,1"

说明:

当端口打开时,如果 value 非法,则 MSComm 控件产生错误 380(非法属性值)。

Value 由四个设置值组成,有如下的格式:"BBBB,P,D,S"

a)BBBB 为波特率,P 为奇偶校验,D 为数据位数,S 为停止位数。value 的缺省值是:

"9600,N,8,1"

合法的波特率:设置值 110,300,600,1200,2400,9600缺省,14400

19200 ,28800 ,38400 ,56000 ,128000 ,256000

b)合法的奇偶校验值。设置值 E 偶数(Even) ,M 标记(Mark) ,N 缺省(Default) None

O 奇数 (Odd) ,S 空格 (Space)

c)合法的数据位值。设置值 4 ,5 ,6 ,7 ,8(缺省)

d)合法的停止位值。设置值 1(缺省), 1.5 ,2

3. PortOpen 属性:设置并返回通讯端口的状态(开或关)。在设计时无效。

语法 : object.PortOpen[ = value]

PortOpen 属性语法包括下列部分:

部 分 描 述


object 对象表达式,其值是“应用于”列表中的对象。

value 布尔表达式,说明通讯端口的状态。

value 设置值是:True 端口开,False 端口关

下例以波特率 9600 打开 1 号通讯端口,没有奇偶检查,8 个数据位,1 个停止位。

MSComm1.Settings = "9600,n,8,1"

MSComm1.CommPort = 1

MSComm1.PortOpen = True

说明

设置 PortOpen 属性为 True 打开端口。设置为 False 关闭端口并清除接收和传输

缓冲区。当应用程序终止时,MSComm 控件自动关闭串行端口。

在打开端口之前,确定 CommPort 属性设置为一个合法的端口号。如果 CommPort

属性设置为一个非法的端口号,则当打开该端口时,MSComm 控件产生错误 68(设

备无效)。

另外,串行端口设备必须支持 Settings 属性当前的设置值。如果 Settings 属性包含硬件不支持的通讯设置值,那么硬件可能不会正常工作。

如果在端口打开之前,DTREnable 或 RTSEnable 属性设置为 True,当关闭端口时,该属性设置为 False。否则,DTR 和 RTS 线保持其先前的状态。

4. InputLen 属性: 设置并返回 Input 属性从接收缓冲区读取的字符数。

语法 : object.InputLen [ = value]

InputLen 属性语法包括下列部分:

部 分 描 述


object 对象表达式,其值是“应用于”列表中的对象。

value 整型表达式,说明 Input 属性从接收缓冲区中读取的字符数。

说明:

InputLen 属性的缺省值是 0。设置 InputLen 为 0 时,使用 Input 将使 MSComm 控件读取接收缓冲区中全部的内容。

若接收缓冲区中 InputLen 字符无效,Input 属性返回一个零长度字符串 ("")。在使用 Input 前,用户可以选择检查 InBufferCount 属性来确定缓冲区中是否已有需要数目的字符。

该属性在从输出格式为定长数据的机器读取数据时非常有用。

5. Output 属性:往传输缓冲区写数据流。该属性在设计时无效,在运行时为只读。

语法: object.Output [ = value ]

Output 属性语法包括下列部分:

部 分 描 述


object 对象表达式,其值是“应用于”列表中的对象。

value 要写到传输缓冲区中的一个字符串。

Output 属性示例

下面的例子说明如何将用户键入的每一个字符送到串行端口:

文本框对象 KeyPress Event 事件过程的内容

LPARAMETERS nKeyCode, nShiftAltCtrl

Buffer=’ ’

MSComm1.CommPort = 1

MSComm1.PortOpen = True

Buffer = Chr(nKeyCode)

MSComm1.Output = Buffer

说明

Output 属性可以传输文本数据或二进制数据。用 Output 属性传输文本数据,必须定义一个包含一个字符串。发送二进制数据,必须传递一个包含字节数组的 Variant 到 Output 属性。

正常情况下,如果发送一个 ANSI 字符串到应用程序,可以以文本数据的形式发送。如果发送包含嵌入控制字符、Null 字符等等的数据,要以二进制形式发送。

总之,OLE技术应用是Microsoft所强调和大力推广的技术.通过以上的介绍您可发现,将来在各种平台,各种开发工具,应用系统,Internet或Intranet等应用技术中,都可发现OLE技术的应用,它已经是达到”软件IC组件”境界的一条宽阔大道!


[办公软件]在sybase中插入图片、PDF、文本文件  [办公软件]安装Sybase ASE
[办公软件]linux指令大全(完整篇)  [办公软件]Linux新手入门常用命令大全
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法
[办公软件]Linux程序员必读:中文化与GB18030标准  [办公软件]linux指令大全
[办公软件]制作Linux启动盘的四种方法  [办公软件]Linux文件系统的反删除方法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程: 没有了

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 办公软件  · 系统软件
    · 常用软件  · 聊天工具
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台