国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

MSComm控件使用詳解

2019-11-17 05:39:55
字體:
供稿:網(wǎng)友

  摘要:本文具體介紹了MSComm控件在串口編程中使用。  


                 目    次  
MSComm控件兩種處理通訊的方式  
CommPort屬性  
RThreshold  屬性  
CTSHolding  屬性  
SThreshold  屬性  
CDHolding  屬性  
DSRHolding  屬性  
Settings  屬性  
InputLen  屬性  
EOFEnable  屬性  

Handshake  常數(shù)  
OnComm  常數(shù)  
InputMode  常數(shù)  
錯(cuò)誤消息  


         MSComm 控件通過串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通訊功能。MSComm控件在串口編程時(shí)非常方便,程序員不必去花時(shí)間去了解較為復(fù)雜的API函數(shù),而且在VC、VB、Delphi等語言中均可使用。  Microsoft  Communications  Control(以下簡(jiǎn)稱MSComm)是Microsoft公司提供的簡(jiǎn)化Windows下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法。具體的來說,它提供了兩種處理通信問題的方法:一是事件驅(qū)動(dòng)(Event-driven)方法,一是查詢法。  

1.MSComm控件兩種處理通訊的方式  

MSComm控件提供下列兩種處理通訊的方式:事件驅(qū)動(dòng)方式和查詢方式。    
1.1  事件驅(qū)動(dòng)方式  

事件驅(qū)動(dòng)通訊是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時(shí)需要得到通知,例如,在串口接收緩沖區(qū)中有字符,或者  Carrier  Detect  (CD)  或  Request  To  Send  (RTS)  線上一個(gè)字符到達(dá)或一個(gè)變化發(fā)生時(shí)。在這些情況下,可以利用  MSComm  控件的  OnComm  事件捕捉并處理這些通訊事件。OnComm  事件還可以檢查和處理通訊錯(cuò)誤。所有通訊事件和通訊錯(cuò)誤的列表,參閱  CommEvent  屬性。在編程過程中,就可以在OnComm事件處理函數(shù)中加入自己的處理代碼。這種方法的優(yōu)點(diǎn)是程序響應(yīng)及時(shí),可靠性高。每個(gè)MSComm  控件對(duì)應(yīng)著一個(gè)串行端口。假如應(yīng)用程序需要訪問多個(gè)串行端口,必須使用多個(gè)  MSComm  控件。  

1.2  查詢方式    

查詢方式實(shí)質(zhì)上還是事件驅(qū)動(dòng),但在有些情況下,這種方式顯得更為便捷。在程序的每個(gè)要害功能之后,可以通過檢查  CommEvent  屬性的值來查詢事件和錯(cuò)誤。假如應(yīng)用程序較小,并且是自保持的,這種方法可能是更可取的。例如,假如寫一個(gè)簡(jiǎn)單的電話撥號(hào)程序,則沒有必要對(duì)每接收一個(gè)字符都產(chǎn)生事件,因?yàn)槲ㄒ坏却邮盏淖址钦{(diào)制解調(diào)器的“確定”響應(yīng)。    

2.MSComm  控件的常用屬性  
  MSComm控件有很多重要的屬性,但首先必須熟悉幾個(gè)屬性。  

  CommPort  設(shè)置并返回通訊端口號(hào)。    
  Settings  以字符串的形式設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位。    
  PortOpen  設(shè)置并返回通訊端口的狀態(tài)。也可以打開和關(guān)閉端口。    
  Input     從接收緩沖區(qū)返回和刪除字符。    

  Output    向傳輸緩沖區(qū)寫一個(gè)字符串。  

下面分別描述:    

CommPort屬性  設(shè)置并返回通訊端口號(hào)。  
語法  object.CommPort[value  ]  (value  一整型值,說明端口號(hào)。)    
說明  在設(shè)計(jì)時(shí),value  可以設(shè)置成從  1  到  16  的任何數(shù)(缺省值為  1)。但是假如用  PortOpen  屬性打開一個(gè)并不存在的端口時(shí),MSComm  控件會(huì)產(chǎn)生錯(cuò)誤  68(設(shè)備無效)。  
注重:必須在打開端口之前設(shè)置  CommPort  屬性。  

RThreshold  屬性:在  MSComm  控件設(shè)置  CommEvent  屬性為  comEvReceive  并產(chǎn)生  OnComm  之前,設(shè)置并返回的要接收的字符數(shù)。  
語法  object.Rthreshold  [  =  value  ](value  整型表達(dá)式,說明在產(chǎn)生  OnComm  事件之前要接收的字符數(shù)。  )  
說明  當(dāng)接收字符后,若  Rthreshold  屬性設(shè)置為  0(缺省值)則不產(chǎn)生  OnComm  事件。例如,設(shè)置  Rthreshold  為  1,接收緩沖區(qū)收到每一個(gè)字符都會(huì)使  MSComm  控件產(chǎn)生  OnComm  事件。  

CTSHolding  屬性:確定是否可通過查詢  Clear  To  Send  (CTS)  線的狀態(tài)發(fā)送數(shù)據(jù)。Clear  To  Send  是調(diào)制解調(diào)器發(fā)送到相聯(lián)計(jì)算機(jī)的信號(hào),指示傳輸可以進(jìn)行。該屬性在設(shè)計(jì)時(shí)無效,在運(yùn)行時(shí)為只讀。  
語法:  object.CTSHolding(Boolean)  

Mscomm  控件的  CTSHolding  屬性設(shè)置值:  
True  Clear  To  Send  線為高電平。    
False  Clear  To  Send  線為低電平。    

說明:假如  Clear  To  Send  線為低電平  (CTSHolding  =  False)  并且超時(shí)時(shí),MSComm  控件設(shè)置  CommEvent  屬性為  comEventCTSTO  (Clear  To  Send  Timeout)  并產(chǎn)生  OnComm  事件。  

Clear  To  Send  線用于  RTS/CTS  (Request  To  Send/Clear  To  Send)  硬件握手。假如需要確定  Clear  To  Send  線的狀態(tài),CTSHolding  屬性給出一種手工查詢的方法。  

具體信息  有關(guān)握手協(xié)議,請(qǐng)參閱  Handshaking  屬性。  

SThreshold  屬性:  MSComm  控件設(shè)置  CommEvent  屬性為  comEvSend  并產(chǎn)生  OnComm  事件之前,設(shè)置并返回傳輸緩沖區(qū)中答應(yīng)的最小字符數(shù)。  

語法  object.SThreshold  [  =  value  ]  

value  整形表達(dá)式,代表在  OnComm  事件產(chǎn)生之前在傳輸緩沖區(qū)中的最小字符數(shù)。    

說明:若設(shè)置  Sthreshold  屬性為  0(缺省值),數(shù)據(jù)傳輸事件不會(huì)產(chǎn)生  OnComm  事件。若設(shè)置  Sthreshold  屬性為  1,當(dāng)傳輸緩沖區(qū)完全空時(shí),MSComm  控件產(chǎn)生  OnComm  事件。假如在傳輸緩沖區(qū)中的字符數(shù)小于  value,CommEvent  屬性設(shè)置為  comEvSend,并產(chǎn)生  OnComm  事件。comEvSend  事件僅當(dāng)字符數(shù)與  Sthreshold  交叉時(shí)被激活一次。例如,假如  Sthreshold  等于  5,僅當(dāng)在輸出隊(duì)列中字符數(shù)從  5  降到  4  時(shí),comEvSend  才發(fā)生。假如在輸出隊(duì)列中從沒有比  Sthreshold  多的字符,comEvSend  事件將絕不會(huì)發(fā)生。  


Handshake  常數(shù)  

常數(shù)  值  描述   

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平陆县| 南城县| 渭南市| 上虞市| 滨海县| 灵璧县| 平遥县| 淄博市| 台江县| 丰原市| 大荔县| 保山市| 邓州市| 商都县| 廉江市| 泉州市| 赣榆县| 东乡族自治县| 延边| 望都县| 博罗县| 凌云县| 阿克苏市| 宜州市| 陇川县| 调兵山市| 新巴尔虎左旗| 芜湖市| 临安市| 繁昌县| 威宁| 札达县| 德昌县| 驻马店市| 镇康县| 绍兴市| 永安市| 吉安县| 桑植县| 黔西县| 鲜城|