MSComm控件的属性

合集下载

mscomm控件的使用和安装

mscomm控件的使用和安装

一、引言目前,在用计算机进行数据传输时,常用的是串行通信方式。

用C++Builder来编写串行通信程序时,可以调用Windows API函数,也可以利用VB中的MSComm控件。

利用API函数编写实际应用程序时,往往要考虑多线程的问题,这样编出来的程序不但十分庞大,而且结构比较复杂,继承性差,维护困难。

但是使用串行通信控件就相对简单一些,而且功能强大,性能安全可靠。

本文就简单的介绍一下在C++ Builder中利用MSComm 控件进行编程。

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

具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。

事件驱动方式在使用事件驱动法设计程序时,每当有新字符到达,或端口状态改变,或发生错误时,MSComm控件将解发OnComm事件,而应用程序在捕获该事件后,通过检查MSComm控件的CommEvent属性可以获知所发生的事件或错误,从而采取相应的操作。

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

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

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

如果应用程序较小,并且是自保持的,这种方法可能是更可取的。

1.MSComm 控件的常用属性CommPort属性:设置或返回通讯端口号,可以设置为1到16之间的任何值,本系统采用缺省值2;Settings属性:以字符串形式设置或返回波特率、奇偶校验、数据位和停止位,本系统采用缺省值"9600,n,8,1";PortOpen属性:设置或返回通讯口的状态以及打开和关闭端口,可通过把该属性设置为true或者false来打开或者关闭端口;InBufferSize和OutBufferSize属性:分别设置接收和发送缓冲区分配的内存数量,单位为字节,缺省值分别为1024byte和512byte;InputLen属性:确定希望从接收缓冲区移出的字符数量,当InputLen=0时,一次把接收缓冲区的字符全部移出;Input属性:从接收缓冲区中读出数据,然后将该数据从缓冲区移走。

MSComm的常用属性

MSComm的常用属性

2.20、MSComm的常用属性属性说明(Name)MSComm控件的名称(自定义)打开属性页CommPort获得或设置通讯端口号DTREnable 决定在通讯过程中是否使数据终端机状态线有效。

取值为:TrueFalseEOFEnable 获得或设置是否搜索EOF字符。

取值为:TrueFalseHandshaking 获得或设置软件的握手协议。

取值为:0 comNone1 comXOnXoff2 comRTS3 comRTSXOnXOffInBufferSize获得或设置接收缓冲区的大小,以字节数为单位。

Index在对象数组中的编号InputLen获得或设置输入属性从接收缓冲区读出的字符数。

InputMode 获得或设置输入属性检索的数据类型。

取值为:0 comInputModeText1 comInputModeBinaryLeft距离容器左边框的距离NullDiscard 决定是否将空字符串从端口传送到接收缓冲区。

取值为:TrueFalseOutBufferSize获得或设置传输缓冲区中的字符数ParityReplace获得或设置当出现奇偶校验错误时,用来替换数据流中无效字符的字符。

RThreshold获得或设置要接受的字符数。

RTSEnable 决定能否使行有效。

取值为:TrueFalseSettings获得或设置波特率、奇偶校验、数据位和停止位参数。

SThreshold获得或设置传输中所能允许的最小字符数Tag存储程序所需的附加数据Top距容器顶部边界的距离。

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

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

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为布尔类型,表明通讯端口的状态。

VB的MSComm控件应用讲义

VB的MSComm控件应用讲义

第12章 VB应用12.1 MSComm控件可以通过它对计算机的RS-23串行通信口进行读写操作1.主要属性设置:(1)CommPort属性:设置通信端口,一般计算机上1-2个RS-232口,由此属性指定使用哪个口,设定其值为1则表示使用1端口。

(2)Settings 属性:默认值“9600,n,8,1”。

9600——波特率n ——效验方式。

“n”不效验8 ——数据位1 ——停止位(3)Sthreshold 属性:设置要返回多少个字符才发生MSComm1_OnComm事件2.两台计算机串行通信的硬件接线A计算机的串口2脚(发送)——B计算机的串口3脚(接收)A计算机的串口3脚(接收)——B计算机的串口2脚(发送)A计算机的串口5脚(地)——B计算机的串口5脚(地)1.读写操作Private Sub Command1_Click() '发送MSComm1.Output = Text1.TextEnd SubPrivate Sub Command2_Click() '清空1Text1.Text = ""End SubPrivate Sub Command3_Click() '发送Text2.Text = MSComm1.InputEnd SubPrivate Sub Command4_Click() '清空2Text2.Text = ""End SubPrivate Sub Form_Load()MSComm1.PortOpen = TrueEnd Sub4.应用MSComm1_OnComm事件自动接收设置Sthreshold 属性为1,当有一个及以上字符进入串行口,发生MSComm1_OnComm事件。

Private Sub MSComm1_OnComm()Text2.Text = Text2.Text + MSComm1.InputEnd Sub。

C#串口通信:MSComm控件使用详解

C#串口通信:MSComm控件使用详解

C#串口通信:MSComm控件使用详解目次MSComm 控件两种处理通讯的方式CommPort 属性RThreshold 属性CTSHolding 属性SThreshold 属性CDHolding 属性DSRHolding 属性Settings 属性InputLen 属性EOFEnable 属性Handshake 常数OnComm 常数InputMode 常数错误消息MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。

MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi 等语言中均可使用。

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

具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。

1.MSComm控件两种处理通讯的方式MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。

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

在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者Carrier Detect (CD) 或Request To Send (RTS) 线上一个字符到达或一个变化发生时。

在这些情况下,可以利用MSComm 控件的OnComm 事件捕获并处理这些通讯事件。

OnComm 事件还可以检查和处理通讯错误。

所有通讯事件和通讯错误的列表,参阅CommEvent 属性。

在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。

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

每个MSComm 控件对应着一个串行端口。

如果应用程序需要访问多个串行端口,必须使用多个MSComm 控件。

MSComm控件属性与事件

MSComm控件属性与事件

MSComm控件属性与事件1、CommPort属性•功能:设置或返回通信端口号。

•语法:–void CMSComm::SetCommPort(short nNewV alue); //设置串口号–short CMSComm::GetCommPort(); //查询当前串口号•说明:–nNewV alue取值范围:1~16,但是如果用SetPortOpen属性打开一个不存在的串口号,将产生错误。

•注意:–必须在打开端口之前设置CommPort属性。

程序://根据当前端口号选择所要打开的串口m_Comm.SetCommPort(atoi(m_strCOM.Mid(3,1)));2、PortOpen属性•功能:用于打开或关闭串口,或者返回串口的开关状态。

•语法:–void CMSComm::SetPortOpen(BOOL bNewV alue);–BOOL CMSComm::GetPortOpen();•说明:–bNewV alue=TRUE,则打开串口;–bNewV alue=FALSE,则关闭串口;–当程序终止时,MSComm控件会自动关闭。

–BOOL CMSComm::GetPortOpen(),返回值为真,则串口已打开,否则,未打开;程序if(m_Comm.GetPortOpen()){m_Comm.SetPortOpen(FALSE);}if(!m_Comm.GetPortOpen()){m_Comm.SetPortOpen(TRUE);//打开串口按钮颜色正常GetDlgItem(IDC_BUTTON_OPENPORT)->EnableWindow(FALSE);//关闭串口按钮颜色变灰GetDlgItem(IDC_BUTTON_CLOSEPORT)->EnableWindow(TRUE);}else{AfxMessageBox("cannot open serial port");}3、RThreshold属性•功能:•语法:–void CMSComm::SetRThreshold(short nNewV alue);–short CMSComm::GetRThreshold();•说明:–接收缓冲区收到nNewV alue个字符时产生OnComm事件。

MSComm控件使用详解

MSComm控件使用详解

MSComm控件使用详解2008-04-06 19:15:39| 分类:Windows编程|举报|字号订阅MSComm控件使用详解MSComm控件的常用属性1.MSComm1.Settings:=’9600,n,8,1’; //设置波特率,校验位,数据位,停止位Settings属性: 设置串口的波特率,校验位,数据位,停止位, ’9600,n,8,1’表示波特率为9600,无奇偶校验,数据位为8为,1位停止位MSComm1.InBufferSize:=1024; // 接受缓冲区大小InBufferSize 属性:接收缓冲区的大小,默认值为1024,也可以自己设定,比如, MSComm1.InBufferSize:=2000,则接收缓冲区的大小为2000字节MSComm1.OutBufferSize:=1024; // 发送缓冲区大小OutBufferSize属性:发送缓冲区的大小,默认值为1024,也可以自己设定,比如,MSComm1.OutBufferSize:=2000,则发送缓冲区的大小为2000字节MSComm1.InBufferCount:=0; //清空接受缓冲区InBufferCount属性:当前接收缓冲区接收到的数据的长度, count:=MSComm1.InBufferCount,则count值就是接收缓冲区接收到的数据的长度,对InBufferCount 赋值MSComm1.InBufferCount:=0,可以清空接受缓冲区MSComm1.OutBufferCount:=0; //清空发送缓冲区OutBufferCount属性:当前发送缓冲区中数据的长度,对OutBufferCount 赋值MSComm1. OutBufferCount:=0,可以清空发送缓冲区MSComm1.InputMode:=comInputModeText;// 以文本方式取回数据MSComm1.InputMode:=comInputModeBinary; //设置接收数据模式为二进制形式InputMode属性:串口接收数据的模式, comInputModeText(0)表示以文本(ASCII)方式取回数据,comInputModeBinary(1)表示以二进制方式取回数据comInputModeText, comInputModeBinary为预定义常量,分别表示0,1 RcvByte:=MSComm1.InputInput属性:通过Input属性可以读取串口中接收到的数据,RcvByte:=MSComm1.Input表示读取串口接收到的数据,其中RcvByte的数据类型为: array of Byte 或array of Variant.在读取之前先设置RcvByte的长度:SetLength(RcvByte,len),如果一次读取所有数据,则SetLength(RcvByte, MSComm1.InBufferCount)MSComm1.Output:= OutputDatOutput属性:通过Output属性可以发送数据, MSComm1.Output:=OutputDat,则将OutputDat中的数据发送出去,其中OutputDat数据类型为array of Byte,发送前要设置OutputDat的长度, SetLength(OutputDat,len),然后向OutputDat中填入数据,再清空发送缓冲区MSComm1.OutBufferCount:=0,然后再发送MSComm1.Output:=OutputDatMSComm1.InputLen:=0;////////////// 一次读取所有数据/////////InputLen属性:一次从Input属性中读取数据的长度, MSComm1.InputLen:=1,表示一次读取一个字节,如果MSComm1.InputLen:=0,则表示一次读取全部数据MSComm1.SThreshold:=0;//一次发送所有数据,发送数据时不产生OnComm 事件SThreshold属性:通过该属性设置产生OnComm 事件(发送时产生)的阀值,若MSComm1.SThreshold:=0, 则一次发送所有数据,发送数据时不产生OnComm 事件, 若MSComm1.SThreshold:=5,当发送缓冲区的字节数从5字节减少到4字节时, 产生OnComm 事件MSComm1.RThreshold:=1;//////////// 每接收1个字节就产生一个OnComm 事件RThreshold属性: 通过该属性设置产生OnComm 事件(接收时产生)的阀值,若MSComm1.RThreshold:=0,不产生OnComm 事件,若MSComm1.RThreshold:=5,接收缓冲区每收到5字节时,则产生OnComm 事件MSComm1.PortOpen:=True; //打开串口PortOpen属性:设置端口的打开与关闭,打开端口MSComm1.PortOpen:=True,关闭端口MSComm1.PortOpen:=FalsemPort:=CommPort;CommPort属性:设置端口号, mPort:=1, 设置端口号为COM1CommEvent属性: 常用的两个comEvReceive, comEvSendOnComm 常数常数值描述comEvSend 1 发送事件。

mscomm32控件属性

mscomm32控件属性

---- 1、常用属性CommPort:设置或返回串行端口号,缺省为1。

Setting:设置或返回串行端的波特率、奇偶校验位、数据位数、停止位。

缺省值为"9600,N,8,1"。

PortOpen:设置它为True则打开端口,设置它为False则关闭端口。

InBufferSize:设置或返回接收缓冲区的大小,缺省为1024 字节。

InBufferCount:返回接收缓冲区内的等代读取的字节个数,设属性为0清除接收缓冲区。

OutBufferSize:设置或返回发送缓冲区,缺省为512字节。

OutBufferCounter:返回发送缓冲区内等待发送的字符数,可用0来清空缓冲区。

Output:向发送缓冲区传送数据RThreshold: 该属性确定当接收缓冲区内字节个数达或超过该值后就产生代码为ComEventReceive的OnComm事件,设置位0,则不产生OnComm事件。

CommEvent:有通讯错误或事件发生时产生OnComm事件,CommEvent事件的值可以用来确定引发OnComm事件的具体的错误或事件常用的有以下几种(更详细的资料可参考MSComm控件帮助文件)ComEventbreak:接受到中断信号ComEventFrame:硬件检测到帧错误。

ComEventRxOver:接收缓冲区溢出。

ComEventTxFull:发送缓冲区溢出。

ComEventReceive:接受到规定的字符数。

InputLen:设置或返回接收缓冲区内用Input读入的个数。

若取0,则读取整个缓冲区的内容。

Input:返回并删除接受缓冲区的数据。

---- 2、示例:---- 下面举一接收程序示例:制作一通讯接收窗口,选择菜单Controls→OLE→Insert Control→MicrosoftCommunications Control,---- 在窗口中出现通信控件图标单击鼠标右键,选择OCX Properties设置常用属性,也可在程序中进行设置窗口的Open事件程序如下ole_mPort=2ole_1.object.Settings="9600,N,8,1"ole_1.object.PortOpen=tureole_1.object.Rthreshold=10ole_1.object..Inputlen=0 . .通信控件的oncomm事件的程序如下choose case ole_mEventcase comEventBreak //接收到中断信号case comEventCDTO //处理CD超时. . .case comEvReceive sle_1.text=ole_1.object.Input. .end choose利用Microsoft公司提供的通讯控件利用Microsoft公司提供的通讯控件(Mscomm.vbx,用于16位通讯程序、Mscomm32.ocx用于开发32位通讯程序)可方便实现串口通讯。

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

MSComm控件的属性(必须要熟悉的几个——CommPort:设置并返回通信端口号;Setting:以字符串的形式设置并返回数据传输速率、奇偶校验、数据比特、停止比特;PortOpen:设置并返回通信端口的状态,也可以打开和关闭端口;Input:从接收缓冲区返回和删除字符;Output:向传输缓冲区定一个字符串)1)CommPort属性void SetCommPort(short nNewValue); short GetCommPort();这一属性设置并返回连接的串行端口号,Windows将会利用该串口和外界通信。

在设计时,nNewValue可以设置成从1~16的任何数(默认值为1)。

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

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

2)Settings属性void Settings(LPCTSTR lpszNewV alue); String GetSettings();该属性用于设置并返回数据传输速率、奇偶校验、数据比特、停止比特参数。

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

其中lpszNewValue用字符串表示,由四个设置值组成,有如下的组成格式:“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、12800、25600。

奇偶校验值可以是设置为下表的任一值。

设定值描述E 偶校验(EVEN)M 标号校验(MARK)N 无校验(NONE)O 奇校验(ODD)S 空格校验(SPACE)数据比特数可以是4、5、6、7、8。

停止比特数可以是1、1.5、2。

注意:只有当通信的双方的Settings属性值都一样时,通信连接才能生效。

3)Handshaking属性这一属性用于设置或者返回硬件握手协议,也就是PC和通信设备之间为了控制流速而设定的内部协议。

属性值可以设置为下表中的任一个。

设定值值描述ComNone 0 默认值,无握手协议comXOnXOff 1 XON/XOFF握手ComRTS 2 RTS/CTS握手comRtsXOnXOff 3 RTS/CTS和XON/XOFF握手皆可4)RThreshold属性void SetRThreshold(short nNewValue); short GetRThreshold();在MSComm控件设置CommEvent属性为comEvReceive并产生OnComm之前,RThreshold 属性设置并返回的要接收的字符数。

这里nNewValue是short型参数,说明在产生OnComm 事件之前要接收的字符数。

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

否则,该属性为一阈值,当接收缓冲区内字节个数达到或超过该值后就会产生OnComm事件,例如,设置RThreshold为1,接收缓冲区收到每一个字符都会使MSComm控件产生OnComm事件。

5)CTSHolding属性void SetCTSHolding(BOOL bNewValue); BOOL GetCTSHolding();其属性设定值如下表所示。

设定值功能描述TRUE CTS线为高电平FALSE CTS线为低电平该属性确定是否可通过查询CTS线的状态发送数据。

CTS是调制解调器发送到相连计算机的信号,指示传输可以进行。

该属性在设计时无效,在运行时为只读。

如果CTS线为低电平(CTSHolding = FALSE)并且超时时,MSComm控件设置CommEvent 属性为comEventCTSTO(Clear To Send Timeout)并产生OnComm事伯。

CTS线用于RTS/CTS 硬件握手。

如果需要确定CTS线的状态,CTSHolding属性给出一种手工查询方法。

6)SThreshold属性void SetSThreshold(short nNewValue); short GetSThreshold();MSComm控件设置CommEvent属性为comEvSend并产生OnComm事件之前,设置并返回传输缓冲区中允许的最小字符数。

这里nNewValue是short型数据,代表在OnComm事件产生之前在传输缓冲区中的最小字符数。

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

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

如果在传输缓冲区的字符数小于value,CommEvent属性设置为comEvSend,并产生OnComm事件。

comEvSend 事件仅当字符数与Sthreshold交叉时被激活一次。

例如,如果Sthreshold等于5,仅当在输出队列中字符数从5降到4时,comEvSend才发生。

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

7)InputMode属性void SetInputMode(long nNewValue); long GetInputMode();访属性用于设置或者返回传输数据的类型。

其取值和基本含义如下表所示。

设定值值描述ComInputModeText(缺省) 0 通过Input属性以文本方式取回数据ComInputModeBinary 1 通过Input属性以二进制方式取回数据8)InputLen属性void SetInputLen(short nNewValue); short GetInputLen ();该属性用于设置并返回Input属性从接收缓冲区读取的字符数。

nNewValue是short型数值,说明Input属性从接收缓冲区中读取的字符数。

InputLen属性的默认值是0。

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

若接收缓冲区中InputLen字符无效,Input属性返回一个零长度字符串(“”)。

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

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

9)InBuffersize属性void SetBufferSize(short nNewValue); short GetInBufferSize();InBuffersize属性用于设置或返回输入缓冲区的大小,默认值为1024字节。

10)InBufferCount属性void SetInBufferCount(short nNewValue); short GetInBufferCount();InBufferCount属性用于返回输入缓冲区内的等待读取的字节个数,可以通过该属性值为0来清除接收缓冲区。

11)Input属性V ARIANT GetInput();Input属性表示从接收缓冲区移走一串字符,将缓冲区中收到的数据读入变量。

属性值为V ARIAN型变量。

该属性在端口未打开时不可用,在运行时是只读的。

注意:当InputMode属性值为0时(文本模式),变量中含String型数据。

当InputMode属性值为1(二进制模式),变量中含Byte型数组数据。

12)PortOpen属性void SetPortOpen(BOOL bNewValue); BOOL GetPortOpen();PortOpen属性用于打开或者关闭端口。

如果bNewV alue设为TRUE,可以打开端口;设为FALSE时可以关闭端口。

一般情况下在程序开始时打开端口,在程序结束时关闭端口。

当应用程序终止时,MSComm控件将自动关闭串口。

在打开端口前,确定CommPort属性调协为正确的端口号。

而且,用户的串口设备必须支持Settings属性中的设置。

如果硬件设备不支持Settings属性中的一些设置,则硬件工作或许不正确。

13)OutBuffersize属性void SetOutBufferSize(short nNewValue);OutBuffersize属性用于设置或者返回发送缓冲区的大小,值为整形表达式,表示传输缓冲区的字节数,默认值为512字节。

对发送缓冲区设置得越大,应用程序可以使用的内存就越小。

然而,如果发送缓冲区太小,缓冲区将会溢出,除非使用握手协议。

14)OutBufferCounter属性void SetOutBufferSize(short nNewValue); short GetOutBufferSize();OutBufferCounter属性用于返回发送缓冲区内等待发送的字节数,可以通过设置该属性为0来清空发送缓冲区。

15)Output属性void SetOutput(const V ARIANT & newValue);Output属性用于向发送缓冲区写数据流。

属性为V ARIANT变量。

该属性在端口未打开时不可用,在运行时只是写的。

注意:Output属性可以发送文本数据或二进制数据。

传输文本数据时,应该将字符型数据放入V ARIANT变量中;传输二进制数据(即按字节传送)时,应将字节型数据放入V ARIANT 型变量中。

如果通常给应用程序发送ANSI字符串,可以以文本方式发送。

如果数据包含了内嵌控制字符、NULL字符等,必须将其作为二进制传递过去。

16)CommEvent属性short GetCommEvent();如果在通信过程中发生错误或事件,将会引发OnComm事件并且改变其属性值。

CommEvent 属性值反映错误或者事件类型,通信的设计中可以根据该属性值执行同的操作。

该属性在端口未打开时不可用,在运行时是只读的。

通信错误及通信事件的设定值分别如下两表所示。

通信错误设定值设定值值描述comEventBreak 1001 接收到中断信号comEventCTSTO 1002 CTS超时comEventDSRTO 1003 DSR超时comEventFrame 1004 帧错误,硬件检测到一个帧出错,双方设置的格式不一致时,就会引发此错误comEventOverrun 1006 端口超速。

一个字符没有在下一个字符到达之前被硬件读取,该字符丢失comEventCDTO 1007 数据检测超时comEventRxOver 1008 接收缓冲区溢出comEventRxParity 1009 奇偶校验错误comEventTxFull 1010 传输缓冲区溢出,表明输出缓冲区已满,不能再将字符输出到缓冲区comEventDCB 1011 检索端口、设备控制块(DCB)时的意外错误通信事件设定值设定值值描述comEvSend 1 发送事件。

相关文档
最新文档