VB6.0下MSComm控件实现串口通信

合集下载

vc 使用mscomm控件实现串口通讯

vc 使用mscomm控件实现串口通讯

vc 使用mscomm控件实现串口通讯2009-07-07 08:34mscomm控件是微软发布的串口通讯控件,可以被多种开发工具使用,本章简单介绍vc环境下该控件的使用情况.1、控件的装载。

新建一个mfc工程,选择project-add to project-components and controls打开components and controls gallery对话框,双击 registered actives controls ,做出如下图的选择:点插入按钮后,就可把把该控件安装到controls面板上,同时创建串口类,我们从controls面板上把该控件添加到应用程序对话框就可以使用该控件设计通讯程序了。

2、初始化并打开串口。

m_ctrlComm.SetCommPort(1); //选择串口1if(!m_ctrlComm.GetPortOpen())//如果串口没有打开,则打开串口m_ctrlComm.SetPortOpen(TRUE);m_ctrlComm.SetSettings("38400,n,8,1");//波特率38400,无校验,8个数据位,1个停止位m_ctrlComm.SetInputMode(1);//以二进制方法检取数据m_ctrlComm.SetRThreshold(1);//参数为1表示当串口接收缓冲区有多于或等于1个字符时,将出发一个//接收数据的OnComm事件m_ctrlComm.SetInputLen(0);//设置当前接收缓冲区的数据长度为0m_ctrlComm.GetInput();//先预读缓冲区以清除残留数据3、串口关闭。

m_ctrlComm.SetPortOpen(FALSE);4、数据发送strSendFrame = "10 40 01 41 16 ";CStringToCByteArray(strSendFrame,cbaSendBuf);//转换为字节流cbaLastSendFrameBuf.Copy(cbaSendBuf);ucLastSendCtlCode = cbaSendBuf[1];pView->m_ctrlComm.SetOutput((COleVariant)cbaSendBuf);//串口发送5、数据接收响应mscomm控件的oncomm事件处理接收到的数据。

用VisualBasic实现串口通信的三种方法

用VisualBasic实现串口通信的三种方法

comm2. InBufferSize = 512 ′设置接收缓冲区为 512 字节
comm2. SThreshold = 1
′发送缓冲区空触发发送事件
comm2. RThreshold = 0
′禁止接收事件
′打开 COM1 ,COM2
comm1. Portopen = True
comm2. Portopen = True
以上五种属性对串口完成基本的设置和操作 ,下面的三 种属性是描述如何利用 VB 提供的事件驱动机制来实现通 信。
CommEvent :返回通信过程中产生的错误信息及事件 ,了 解通信状况 。
SThreshold :设置并返回不触发 OnComm 事件时发送缓冲 区被允许的最少字符数 。当缓冲区的字符少于设置的值时 , 则触发 OnComm 事件 ,并把 CommEvent 设为 MSCOMMM—EV— SEND。当 SThreshold = 0 则禁止发送触发 OnComm 事件 , 当 SThreshold = 1 则发送缓冲区为空时就触发 OnComm 事件 。利 用这一属性 ,就可完成发送数据后的一系列操作 。如 :对刚发 送的数据进行处理 ,当串口是和 MODEM 通信时 ,发送完数据 后可进行拆除线路联接 、挂机等操作 。
′读取接收缓冲区的所有字符
comm1. OutBufferSize = 512 ′设置发送缓冲区为 512 字节
comm1. InBufferSize = 512 ′设置接收缓冲区为 512 字节
comm1. SThreshold = 0
′禁止发送事件
comm1. RThreshold = 1 ′每一个字符到接收缓冲区都
WINDOWS 的 HELP 文件 WINSDK. HLP 中包含了完整的 WINDOWS API 函数信息 ,可用该文件查看联机函数 、数据结 构及错误信息 。

VB6.0环境下利用Mscomm控件实现串行通信

VB6.0环境下利用Mscomm控件实现串行通信

VB6.0环境下利用Mscomm控件实现串行通信Use Mscomm Control Component to Implement Serial Communication under Visual Basic摘要: 本文简要介绍了VB6.0中Mscomm通信控件的属性和使用方法,并结合具体实例给出了基本的通信程序。

主题词:串行通信Visual Basic Mscomm .vbx控件Abstract: This paper briefly introduces the principle and method of Mscomm object of Visual basic 6.0, and with a real example basic program codes are given.Key Words:Serial Communication; Visual Basic; Mscomm .vbx control component随着计算机技术的飞速发展及其广泛应用,远程控制以及数据采集系统多采用上位机和下位机的主从工作方式,由于串行通信具有高效可靠、价格便宜,遵循统一的标准等特点,因而成为主要的通信手段。

微机的分析处理能力较强,有很好的人机界面和大容量的多种存储方式,所以上位机一般采用微机。

而单片机具有价格低,功能强,抗干扰能力好,温限宽和面向控制等特点,所以下位机采用单片机来构成主从式多机工作模式。

在需要对采集的数据进行分析处理或在远程需要对控制对象的控制过程进行统计或有条件控制时,采用数据库访问技术能有效地解决这类问题。

Visual Basic 6.0以其强大的功能、使用简单、能在短时间内开发出高效的通信程序而成为Windows系统开发的主要编程语言。

首先表现在VB可直接使用户自定义控件VBX或OCX文件;其次表现在VB可通过调用动态链接库(DLL,dynamic link library)来加快应用程序关键部分的执行速度。

用vb6实现仪器串口通信及检测功能

用vb6实现仪器串口通信及检测功能

1 设计用户界面第一新建一个“标准EXE”工程,然后选择“工程/部件”菜单项,在“部件”对话框当选择Microsoft Comm 即可添加MsComm控件;再在窗体中依次布置如下控件并设置其属性。

控件名称name属性Caption属性Form form1空Frame1frame1空Frame2frame2空Frame3frame3空Command1comd1确定Command2comd2退出Command3comd3确定Command4comd4退出Command5comd5做完退出MSComm msc1空Label 1lab1RS-232接口功能检测Label 2lab2请输入被检仪器程控码控制仪器功能Label 3lab3请输入被检仪器程控码读取仪器数据Text1txt1空Text2txt2空完成后的界面如图1所示图1 用户界面2 编写程序代码编写的程序代码如下:PriVate Sub Form_Load()=1 ’ 使用串行口1’波特率9600,偶校验,8个数据位,1个停止位Msc =“9600,E,8,1”’当使用Msc 时,每次从接收缓冲区取一个字节。

=0 ’读取整个接收缓冲区内码或消除=True ’ 打开串行口End SubPrivate Sub Comd1_Click()On Error Resume Next ’简单的错误处理If = "" Thenx = MsgBox("被检仪器程控码不能为空值", 16)Exit SubEnd If= + Chr$(13)’发送程控码For i = 1 ToNextEnd SubPrivate Sub Comd2_Click()= ""End SubPrivate Sub Comd3_Click()Dim instring As stringinstring == + Chr$(13)DoDoEventsLoop Until >= 20instring = ’ 从接收队列中读入字符串= ""= instring ’ 显示读入的字符串End SubPrivate Sub Comd4_Click()= ""End SubPrivate Sub Comd5_Click()= False ’ 关闭串行口EndEnd Sub3 程序简要说明上述程序设置的端口通信协议为:9600波特率,偶校验,8个数据位,1个停止位。

基于VB6.0的串口通信方法

基于VB6.0的串口通信方法

基于VB6.0的串口通信方法串口通信在数据采集中有着广泛的应用,因为串口通信通信线路简单、灵活方便、数据可靠。

作为快速开发,利用VB开发串口通信程序既可以使用MSComm控件也可以调用WindowsAPI函数实现。

这里我们使用VB6.0提供的MSComm控件,因为MSComm控件的功能和API调用一样强,甚至更好且使用起来更加简单,能很方便地实现所需的串口通信功能。

1.MSComm控件简介MSComm控件是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。

具体的来说,它提供了两种处理通信问题的方法:一是事件驱动方法,当串口通信产生错误时,MSComm控件会触发OnComm事件,程序员可以在OnComm事件处理函数中加入自己的处理代码。

另外一种是查询法。

查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。

在程序的每个关键功能之后,可以通过检查CommEvent属性的值来查询事件和错误。

2.MSComm控件的常用属性MSComm控件有很多重要的属性,但首先必须熟悉几个关键属性。

CommPort 设置并返回通讯端口号Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位PortOpen 设置并返回通讯端口的状态。

也可以打开和关闭端口Input 从接收缓冲区返回和删除字符Output 向传输缓冲区写一个字符串3.程序代码设计利用MSComm控件编写串口通信程序是十分便利和简单的。

下面我就事件驱动方式以VB6.0为平台编写了PC间串口通信程序的实例。

代码如下:'串口初始化PrivateSubForm_Load()mPort=1 '设置通信端口号为COM1MSComm1.Settings="9600,n,8,1" '设置串口参数MSComm1.InputMode=0 '接收文本型数据MSComm1.RThreshold=1'接收缓冲区每收到一个字符都会使MSComm控件触发OnComm事件MSComm1.PortOpen=True '打开通信端口1EndSub'把字符通过串口发送出去'启动定时器PrivateSubCmdsend_Click()IfTextsend.Text=""Thenpp=MsgBox("发送的数据不能为空!",16)ExitSubEndIfMSComm1.Output=Trim(Textsend.Text)EndSub'MSComm的OnComm事件程序'由CommEvent属性值的不同,将各自的程序代码写入相关的子程序中'只要RThresold中的设定字符数到达时便会使得CommEvent属性值变成comEvReceive'因此接收的子程序便会被执行PrivateSubMSComm1_OnComm()Dimbuf$mEvent'通过取代每一个case表达式来处理每个事件与错误CasecomEvCD'CD线的状态发生变化CasecomEvCTS'CTS线的状态发生变化CasecomEvDSR'DSR线的状态发生变化CasecomEvReceivebuf=Trim(MSComm1.Input)'将缓冲区内的数据读入buf变量中CasecomEvSendEndSelectTextReceive.Text=TextReceive.Text&bufEndSub'停止程序运行PrivateSubCmdquit_Click()UnloadMeEndSub'关闭通信端口,PrivateSubForm_Unload(CancelAsInteger)MSComm1.PortOpen=FalseEndSub4结束语本文通过具体实例介绍了如何利用VB6.0中的MSComm控件来实现串口通信。

VB6.0的MSComm通信控件应用举例

VB6.0的MSComm通信控件应用举例

VB6.0的MSComm通信控件应用举例作者:程巍巍来源:《合作经济与科技》2009年第07期提要本文介绍了基于VB6.0的MSComm通信控件相关理论,并以一个实例演示了MSComm控件的主要属性。

关键词:串行通信;VB6.0;MSComm控件中图分类号:F49文献标识码:A在当今这个科技飞速发展的时代,我们经常需要在计算机与其他设备之间进行通信,而串行通信作为一种灵活、方便、可靠的通信方式被广泛采用。

在开发串行通信程序的过程中,利用微软的MSComm通信控件相对比较简单,该控件具有丰富的与串行通信密切相关的属性及事件,提供了对串口的各种操作。

MSComm控件在VB中容易使用,在串口编程时也非常方便,程序员不必花时间去了解较为复杂的API函数。

一、用VB6.0进行串行通信程序的设计方法简介用visual basic6.0进行串行通信程序的设计有两种方式:(1)直接调用Windows API。

(2)使用通信组件。

该方式实际上是通过通信组件间接调用Windows API函数,其过程要比直接调用API要复杂,但在程序上容易实现。

使用MSComm控件时,实际上就是使用了API 函数,API函数将被Comm.drv解释并传送给外围设备驱动程序,使用MSComm的用户只需要关心如何使用MSComm所提供的属性或事件,以驱动API函数的接口完成工作。

二、串行通信程序的执行过程MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通信功能。

该控件提供了两种处理通信的方式:1、事件驱动通信。

事件驱动通信是处理串行端口交互作用的一种非常有效的方式。

在使用事件驱动通信时,每当有一个字符到达或端口状态发生改变,或发生错误时,MSComm控件将触发OnComm事件进行捕获,通过检查MSComm控件的CommEvent属性获知所发生的事件或错误,从而采取相应的操作处理这些通信事件。

这种方法的优点是程序响应及时,可靠性高。

VB控件MSComm串口通讯实例教程

VB控件MSComm串口通讯实例教程

现有电子秤一台,使用串口与计算机进行通讯。

编写VB程序来访问串口,达到读取电子秤上显示的数据。

该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。

所有字符现有电子秤一台,使用串口与计算机进行通讯。

编写VB程序来访问串口,达到读取电子秤上显示的数据。

该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。

所有字符均发送11位ASCII码,一个起始位。

在VB中与串口通讯需要引入控件MSComm串口通讯控件(在Microsoft Comm Control 6.0中)。

具体程序如下:控件简称:MSCDim Out(12) As Byte '接收var中的值Dim var As Variant '接收MSC.input中的数值Dim nRece As Integer '计算MSC.inputbuffer的个数Dim i As Integer, j As Integer '随即变量,计算循环************************************************************************** **Private Sub Form_Load()ClearTextWith MSC.CommPort = 1 '设置Com1为通信端口.Settings = "9600,E,7,2" '设置通信端口参数 9600赫兹、偶校验、7个数据位、2个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。

含义是:B:Baud Rate(波特率);P:Parity(奇偶);D:Data Bit;S:Stop Bit).InBufferSize = 40 '设置缓冲区接收数据为40字节.InputLen = 1 '设置Input一次从接收缓冲读取字节数为1.RThreshold = 1 '设置接收一个字节就产生OnComm事件End WithEnd Sub************************************************************************** **Private Sub ClearText()Text3.Text = ""Text2.Text = "5"Text1.Text = ""End SubPrivate Sub Command1_Click()ClearText' nRece = 0 '计数器清零With MSC.InputMode = comInputModeBinary '设置数据接收模式为二进制形式.InBufferCount = 0 '清除接收缓冲区If Not .PortOpen Then.PortOpen = True '打开通信端口End IfEnd WithEnd SubPrivate Sub MSC_OnComm()DelayTime ‘用来延续时间ClearTextWith MSCSelect Case .CommEvent '判断通信事件Case comEvReceive: '收到Rthreshold个字节产生的接收事件SwichVar 1If Out(1) = 2 Then '判断是否为数据的开始标志.RThreshold = 0 '关闭OnComm事件接收End IfDoDoEventsLoop Until .InBufferCount >= 3 '循环等待接收缓冲区>=3个字节' nRece = nRece + 1For i = 2 To 12SwichVar iText1.Text = Text1.Text & Chr(Out(i))NextText1.Text = LTrim(Text1.Text)Text2.Text = Text2.Text & CStr(nRece).RThreshold = 1 '打开MSComm事件接收Case Else' .PortOpen = FalseEnd SelectEnd WithEnd Sub************************************************************************** **Private Sub DelayTime()Dim bDT As BooleanDim sPrevious As Single, sLast As SinglebDT = TruesPrevious = Timer (Timer可以计算从子夜到现在所经过的秒数,在Microsoft Windows中,Timer函数可以返回一秒的小数部分)Do While bDTIf Timer - sPrevious >= 0.3 Then bDT = FalseLoopbDT = True(通信传输速率为9600bps,则最快速度1.04ms发送一个字节,仪表每秒发送50帧数据,每帧数据有4个字节,即每秒发送200个字节,平均5.0ms 发送一个字节,连续读取串口数据时要在程序中添加循环等待程序)Private Sub SwichVar(ByVal nNum As Integer)DelayTimevar = Nullvar = MSC.InputOut(nNum) = var(0)End Sub(设置接收数据模式采用二进制形式,即 InputMode=comInputModeBinary,但用Input 属性读取数据时,不能直接赋值给 Byte 类型变量,只能通过先赋值给一个 Variant 类型变量,返回一个二进制数据的数组,再转换保存到Byte类型数变量中。

串口通讯方法的三种实现

串口通讯方法的三种实现

串口基本信息用一台电脑实验串口自发自收,实验前要将串口(以9针为例)的发送引脚(2脚)和接受引脚(3脚)短接。

三线连接:适用于计算机之间尤其是PC机和单片机之间的数据通信。

其连接信号对为(TxD,RxD)、(RxD,TxD)、(SG,SG)。

即发送数据TxD端和接受数据RxD端交叉连接,信号地SG对应连接。

七线交叉连接:适用于同型号的计算机之间的连接,如PC机间的数据通信。

其连接信号对为:(TxD,RxD)、(RxD,TxD)、(SG,SG)、(RTS,CTS)、(CTS,RTS)、(DSR.DTR)、(DTR,DSR)。

其中,TxD、RxD、SG与前面信号的含义相同,RTS为请求发送,CTS为准许发送,DSR为数据装置准备好,DTR为数据终端准备好。

在本地连接的微机系统中,RTS、CTS、DTR、DSR用作硬件联络控制信号。

目前使用的串口连接线有DB9和DB25两种连接器,用户可以国家使用的具体机器选择相应的连接器。

一个串口通讯类在/network/serialport.shtml。

PC机的RS-232接口的电平标准是-12V标示“1”,和+12V表示“0”,有些单片机的信号电平时TTL 型,即大于2.4v表示“1”,小于0.5v表示“0”,因此采用RS-232总线进行异步通信是,发送端和接受端要有一个电平转换接口。

串口通讯方法的三种实现串口是计算机上一种非常通用的设备通信协议。

大多数计算机包含两个基于RS232的串口。

串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS一232口。

同时,串口通信协议也可以用于获取远程采集设备的数据。

串口通信(Serial Communication),是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。

串口通信方便易行,应用广泛。

在Windows应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VB6.0下用MSComm控件实现串口通信MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能,以下先对其属性进行详细的说明后再举一个例子进行说明:1基本属性CommPortO mPort[=value]Object为MSComm控件,value为整数值,标志端口号。

说明:该属性设置并返回通讯端口号,value的值可以设为1-16间的任意数(默认为1)。

在打开端口之前必须先设置CommPort属性,当端口不存在时,如果用PortOpen属性打开它,MSComm控件会产生错误68(即设备无效的错误)。

SettingsObjiect.Setting[=value]Object为MSComm控件,value为字符串类型,表示通讯端口的设置值。

说明:本属性用来设置并返回端口的波特率、奇偶校验位、数据位和停止位参数。

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

有效的value参数值由四个设置值组成,有如下格式:“BBBB,P,D,S”,其中BBBB为波特率,P为奇偶校验,D为数据位数,S为停止位数。

Value的默认值为:“9600,N,8,1”,下面给出合法的波特率、奇偶校验位、数据位和停止位参数:波特率:110,300,600,1200,2400,4800,9600(默认),14400,19200,28800,38400,56000,57600,115200,128000,256000。

奇偶校验值:E(偶校验,Even)、M(标记,Mark)、N(默认,Default,None)、O(奇校验,Odd)、S(空格,Space)。

数据位值:4,5,6,7,8(默认),9。

停止位值:1(默认),1.5,2。

PortOpenO bject.PortOpen[=value]Object为MSComm控件。

Value为布尔类型,表明通讯端口的状态。

说明:本属性用来设置或返回通讯端口的状态(开或关)。

在设计时本属性无效。

设置PortOpen属性为True时端口将会被打开。

设置为False时将关闭端口并清除接收和传输缓冲区中的数据。

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

在打开端口之前,必须给CommPort属性设置一个合法的端口号。

如果CommPort属性被设置成一个非法的端口号,则在打开端口时,MSComm控件将产生错误码为68(表示设备无效)的错误。

另外,串行端口设备必须支持Settings属性的当前设置值。

如果Settings属性包含硬件不支持的通讯设置值,则硬件可能不会正常工作。

如果在端口打开之前,DTREnable 或RTSEnable属性被设置为True,则在关闭总线时,这些属性将被设置为False。

否则DTR 和RTS线仍将保持其先前的状态。

InputObject.InputObject为MSComm控件。

说明:本属性用来返回并删除接收缓存区中的数据流。

在设计时本属性无效;在运行时为只读属性。

InputLen属性用来确定被Input属性读取的字符数。

如要InputLen属性值设为0,则Input 属性将读取缓冲区中的所有数据。

InputMode属性确定用Input属性读取的数据类型。

如果InputMode属性设置为comInputModeText,则Input属性将会通过一个Variant类型值返回文本数据。

如果设置为InputModeBinary,则Input属性将通过一个Variant类型返回一个二进制数据的数组。

InputLenObject.InputLen[=value]Object为MSComm控件。

Value为整数类型。

表示Input属性从接收缓冲区读取的字符数。

说明:本属性用来设置并返回Input属性从接收缓冲区读取的字符数。

本属性的默认值是0.当InputLen属性值为0时,使用Input属性将使MSComm控件读取缓冲区中的全部内容。

若接收缓冲区中InputLen属性值表示字符无效,InputLen将会返回一个0长度的字符串(””)。

在使用Input属性之前,用户可以选择检查InBufferCount属性来确定缓冲区中是否已有需要数目的字符。

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

InputModeO bject.InputMode[=value]Object为MSComm控件。

Value为整数类型,表示输入模式。

说明:本属性用来设置或返回Input属性取回的数据的类型。

InputMode属性用来确定Input属性如何取回数据。

数据取回的格式或是字符串或是一个二进制数组。

若数据只用ASSIC字符集,则用comInputModeText设置。

对其它字符数据,如数据中嵌有控制字符、Nulls等,则使用comInputModeBinary设置。

InBufferSizeObject.InBufferSize[=value]Object为MSComm控件。

Value为整数类型,表示接收缓冲区的字节数。

说明:本属性用来设置并返回接收缓冲区中的字节数。

InBufferSize属性是指整个接收缓冲区的大小。

默认值是1024字节。

不要将本属性与InBufferCount混淆,InBufferCount属性返回的是当前在接收缓冲区中等待的字符数。

注意:接收缓冲区越大则应用程序可用的内存越小。

但若接收缓冲区太小,若不使用联络协议,就有可能溢出。

一般的规律是,首先设置一个1024字节的缓冲区。

如果出现溢出错误,则通过增加缓冲区的大小来控制应用程序的传输速率。

InBufferCountObject.InBufferCount[=value]Object为MSComm控件。

Value为整数类型,表明在接收缓冲区中等待的字符数。

在设计时本属性无效。

说明:本属性用来返回接收缓冲区中等待的字符数。

在设计时本属性无效。

InBufferCount属性指调制解调器已接收,并在接收缓冲区中等待被取走的字符数。

可以把InBufferCount属性设为0来清除接收缓冲区。

注意:不要把本属性与InBufferSize属性混淆。

InBufferSize属性用来返回整个接收缓冲区的大小。

OutBufferCountObject.OutBufferCount[=value]Object为MSComm控件。

Value为整数类型,设定用于在传输缓冲区中等待的字符数。

说明:本属性用来返回在传输缓冲区中等待的字符数,也可以使用本属性来清除传输缓冲区。

在设计时本属性无效。

将OutBufferCount设为0时可以清除传输缓冲区。

注意:不要把OutBufferCount和OutBufferSize属性混淆,OutBufferSize属性的作用是返回整个传输缓冲区的大小。

OutBufferSizeObject.OutBufferSize[=value]Object为MSComm控件。

Value为整数类型,指定传输缓冲区的大小。

说明:本属性可以以字节的形式来设置并返回传输缓冲区的大小。

OutBufferSize属性用来指定整个传输缓冲区的大小,默认值为512字节。

不要把本属性与OutBufferCount属性混淆,OutBufferCount属性用来返回当前在传输缓冲区中等待的字符数。

注意:传输缓冲区越大,应用程序可用的内存越小。

但若传输缓冲区太小,若不使用握手协议,就可能有溢出的危险。

一般来说,可以设置一个512字节的缓冲区。

如果出现溢出错误,则可以通过增加传输缓冲区大小来控制应用程序的传输速率。

SThresholdObject.SThreshold[=value]Object是MSComm控件。

Value是整数类型,表示在OnComm事件产生之前在传输缓冲区中的最小字符数。

说明:本属性用来在MSComm控件将CommEvent属性设置为comEvSend并产生OnComm事件之前,设置并返回传输缓冲区中允许的最小字符数。

若Sthreshold属性设置为0(默认值),则表示数据传输事件不会产生OnComm事件。

若Sthreshold属性设置为1,则当传输缓冲区为空时由MSComm控件产生OnComm事件。

发果在传输缓冲区中的字符数小于value参数指定的数值,则CommEvent属性将被设置为comEvSent,并产生OnComm事件。

comEvSend事件仅当字符数与Sthreshold属性设置值交叉时被激活一次。

例如,如果将Sthreshold属性设置为5,则只有当在传输队列中字符数从5降到4时,comEvSend才会发生一次。

如果在输出队列中从没有比Sthreshold属性值更多的字符,comEvSend事件将不会发生。

RThresholdObject.RThreshold[=value]Object为MSComm控件。

Value为整数类型,表示在产生OnComm事件之前需要接收的字符数。

说明:本属性用在MSComm控件将CommEvent属性设置为comEvReceive,并产生OnComm事件之前,设置并返回需要接收的字符数。

当接收字符后,若RThreshold属性被设置为0(默认值)则表示将不产生OnComm事件。

例如,将RThreshold属性值设置为1将表示接收缓冲区收到每一人字符都会使MSComm控件产生OnComm事件。

RTSEnableObject.RTSEnable[=value]Object为MSComm控件。

Value为布尔类型,表有Request To Send(RTS)线是否有效。

说明:本属性用来设置一个确定是否使Request To Send(RTS)线有效的布尔类型值。

一般情况下,由计算机发送Request To Send信号到联接的调制解调器,以请示是否允许发送数据。

如果RTSEnable属性设置为True,当端口打开时,Request To Send线被设置为高电平,当端口关闭时,该线被设置为低电平。

Request To Send线的作用是为RTS/CTS硬件进行握手。

RTSEnable属性允许手动检测Request To Send线,以确定其是否处于有效状态。

其值为True表示Request To Send线有效,为False表示无效。

DTREnableObject.DTREnable[=value]Object为MSComm控件。

Value为布尔类型,表示是否设置Data Terminal Ready(DTR)线有效。

说明:本属性用来确定在通信时是否使Data Terminal Ready(DTR)线有效。

Data Terminal Ready是由计算机发送到调制解调器的信号,指示计算机在等待接受传输。

相关文档
最新文档