国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
MSComm控件屬性詳解
必須要熟悉的幾個(gè)——CommPort:設(shè)置并返回通信端口號(hào);Setting:以字符串的形式設(shè)置并返回?cái)?shù)據(jù)傳輸速率、奇偶校驗(yàn)、數(shù)據(jù)比特、停止比特;PortOpen:設(shè)置并返回通信端口的狀態(tài),也可以打開和關(guān)閉端口;Input:從接收緩沖區(qū)返回和刪除字符;Output:向傳輸緩沖區(qū)定一個(gè)字符串

1) CommPort屬性
void SetCommPort(short nNewValue); short GetCommPort();
這一屬性設(shè)置并返回連接的串行端口號(hào),Windows將會(huì)利用該串口和外界通信。在設(shè)計(jì)時(shí),nNewValue可以設(shè)置成從1~16的任何數(shù)(默認(rèn)值為1)。但是如果用PortOpen屬性打開一個(gè)并不存在的端口時(shí),MSComm控件會(huì)產(chǎn)生錯(cuò)誤68(設(shè)備無效)。
注意:必須在打開端口之前設(shè)置CommPort屬性。

2) Settings屬性
void Settings(LPCTSTR lpszNewValue); String GetSettings();
該屬性用于設(shè)置并返回?cái)?shù)據(jù)傳輸速率、奇偶校驗(yàn)、數(shù)據(jù)比特、停止比特參數(shù)。當(dāng)端口打開時(shí),如果value非法,則MSComm控件產(chǎn)生錯(cuò)誤380(非法屬性值)。其中l(wèi)pszNewValue用字符串表示,由四個(gè)設(shè)置值組成,有如下的組成格式:
“BBBB,P,D,S”
BBBB為數(shù)據(jù)傳輸速率,P為奇偶校驗(yàn),D為數(shù)據(jù)比特,S為停止比特。Value的默認(rèn)值是:“9600,N,8,1”,數(shù)據(jù)傳輸速率合法值可以是110、300、600、1200、2400、4800、9600、14400、19200、28800、38400、56000、57600、115200、12800、25600。
奇偶校驗(yàn)值可以是設(shè)置為下表的任一值?!?br>設(shè)定值描述
E偶校驗(yàn)(EVEN)
M標(biāo)號(hào)校驗(yàn)(MARK)
N無校驗(yàn)(NONE)
O奇校驗(yàn)(ODD)
S空格校驗(yàn)(SPACE)
數(shù)據(jù)比特?cái)?shù)可以是4、5、6、7、8。
停止比特?cái)?shù)可以是1、1.5、2。
注意:只有當(dāng)通信的雙方的Settings屬性值都一樣時(shí),通信連接才能生效。

3) Handshaking屬性
這一屬性用于設(shè)置或者返回硬件握手協(xié)議,也就是PC和通信設(shè)備之間為了控制流速而設(shè)定的內(nèi)部協(xié)議。屬性值可以設(shè)置為下表中的任一個(gè)。
設(shè)定值 值描述
ComNone0默認(rèn)值,無握手協(xié)議
comXOnXOff 1XON/XOFF握手
ComRTS 2RTS/CTS握手
comRtsXOnXOff3 RTS/CTS和XON/XOFF握手皆可

4) RThreshold屬性
void SetRThreshold(short nNewValue); short GetRThreshold();
在MSComm控件設(shè)置CommEvent屬性為comEvReceive并產(chǎn)生OnComm之前,RThreshold屬性設(shè)置并返回的要接收的字符數(shù)。這里nNewValue是short型參數(shù),說明在產(chǎn)生OnComm事件之前要接收的字符數(shù)。當(dāng)接收字符后,若RThreshold屬性設(shè)置為0(默認(rèn)值)則不會(huì)產(chǎn)生OnComm事件。否則,該屬性為一閾值,當(dāng)接收緩沖區(qū)內(nèi)字節(jié)個(gè)數(shù)達(dá)到或超過該值后就會(huì)產(chǎn)生OnComm事件,例如,設(shè)置RThreshold為1,接收緩沖區(qū)收到每一個(gè)字符都會(huì)使MSComm控件產(chǎn)生OnComm事件。

5) CTSHolding屬性
void SetCTSHolding(BOOL bNewValue); BOOL GetCTSHolding();
其屬性設(shè)定值如下表所示。
設(shè)定值       功能描述
TRUE        CTS線為高電平
FALSE     CTS線為低電平
該屬性確定是否可通過查詢CTS線的狀態(tài)發(fā)送數(shù)據(jù)。CTS是調(diào)制解調(diào)器發(fā)送到相連計(jì)算機(jī)的信號(hào),指示傳輸可以進(jìn)行。該屬性在設(shè)計(jì)時(shí)無效,在運(yùn)行時(shí)為只讀。如果CTS線為低電平(CTSHolding =FALSE)并且超時(shí)時(shí),MSComm控件設(shè)置CommEvent屬性為comEventCTSTO(Clear To SendTimeout)并產(chǎn)生OnComm事伯。CTS線用于RTS/CTS硬件握手。如果需要確定CTS線的狀態(tài),CTSHolding屬性給出一種手工查詢方法。

6) SThreshold屬性
void SetSThreshold(short nNewValue); short GetSThreshold();
MSComm控件設(shè)置CommEvent屬性為comEvSend并產(chǎn)生OnComm事件之前,設(shè)置并返回傳輸緩沖區(qū)中允許的最小字符數(shù)。這里nNewValue是short型數(shù)據(jù),代表在OnComm事件產(chǎn)生之前在傳輸緩沖區(qū)中的最小字符數(shù)。若設(shè)置Sthreshold屬性為0(默認(rèn)值),數(shù)據(jù)傳輸事件不會(huì)產(chǎn)生OnComm事件。若設(shè)置Sthreshold屬性為0,當(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ā)生。

7) InputMode屬性
void SetInputMode(long nNewValue); long GetInputMode();
訪屬性用于設(shè)置或者返回傳輸數(shù)據(jù)的類型。其取值和基本含義如下表所示?!?br>設(shè)定值     值描述
ComInputModeText(缺省)0      通過Input屬性以文本方式取回?cái)?shù)據(jù)
ComInputModeBinary1            通過Input屬性以二進(jìn)制方式取回?cái)?shù)據(jù)

8) InputLen屬性
void SetInputLen(short nNewValue); short GetInputLen ();
該屬性用于設(shè)置并返回Input屬性從接收緩沖區(qū)讀取的字符數(shù)。nNewValue是short型數(shù)值,說明Input屬性從接收緩沖區(qū)中讀取的字符數(shù)。
InputLen屬性的默認(rèn)值是0。當(dāng)設(shè)置InputLen為0時(shí),使用Input將使MSComm控件讀取接收緩沖區(qū)中全部的內(nèi)容。若接收緩沖區(qū)中InputLen字符無效,Input屬性返回一個(gè)零長(zhǎng)度字符串(“”)。在使用Input前,用戶可以選擇檢查InBufferCount屬性來確定緩沖區(qū)中是否已有需要數(shù)目的字符。該屬性在從輸出格式為定長(zhǎng)數(shù)據(jù)的機(jī)器讀取數(shù)據(jù)時(shí)非常有用。

9) InBuffersize屬性
void SetBufferSize(short nNewValue); short GetInBufferSize();
InBuffersize屬性用于設(shè)置或返回輸入緩沖區(qū)的大小,默認(rèn)值為1024字節(jié)。

10) InBufferCount屬性
void SetInBufferCount(short nNewValue); short
GetInBufferCount();
InBufferCount屬性用于返回輸入緩沖區(qū)內(nèi)的等待讀取的字節(jié)個(gè)數(shù),可以通過該屬性值為0來清除接收緩沖區(qū)。

11) Input屬性
VARIANT GetInput();
Input屬性表示從接收緩沖區(qū)移走一串字符,將緩沖區(qū)中收到的數(shù)據(jù)讀入變量。屬性值為VARIAN型變量。該屬性在端口未打開時(shí)不可用,在運(yùn)行時(shí)是只讀的。
注意:當(dāng)InputMode屬性值
為0時(shí)(文本模式),變量中含String型數(shù)據(jù)。當(dāng)InputMode屬性值為1(二進(jìn)制模式),變量中含Byte型數(shù)組數(shù)據(jù)。

12) PortOpen屬性
void SetPortOpen(BOOL bNewValue); BOOL GetPortOpen();
PortOpen屬性用于打開或者關(guān)閉端口。如果bNewValue設(shè)為TRUE,可以打開端口;設(shè)為FALSE時(shí)可以關(guān)閉端口。
一般情況下在程序開始時(shí)打開端口,在程序結(jié)束時(shí)關(guān)閉端口。當(dāng)應(yīng)用程序終止時(shí),MSComm控件將自動(dòng)關(guān)閉串口。在打開端口前,確定CommPort屬性調(diào)協(xié)為正確的端口號(hào)。而且,用戶的串口設(shè)備必須支持Settings屬性中的設(shè)置。如果硬件設(shè)備不支持Settings屬性中的一些設(shè)置,則硬件工作或許不正確。

13) OutBuffersize屬性
void SetOutBufferSize(short nNewValue);
OutBuffersize屬性用于設(shè)置或者返回發(fā)送緩沖區(qū)的大小,值為整形表達(dá)式,表示傳輸緩沖區(qū)的字節(jié)數(shù),默認(rèn)值為512字節(jié)。對(duì)發(fā)送緩沖區(qū)設(shè)置得越大,應(yīng)用程序可以使用的內(nèi)存就越小。然而,如果發(fā)送緩沖區(qū)太小,緩沖區(qū)將會(huì)溢出,除非使用握手協(xié)議。

14) OutBufferCounter屬性
void SetOutBufferSize(short nNewValue); short GetOutBufferSize();
OutBufferCounter屬性用于返回發(fā)送緩沖區(qū)內(nèi)等待發(fā)送的字節(jié)數(shù),可以通過設(shè)置該屬性為0來清空發(fā)送緩沖區(qū)。

15) Output屬性
void SetOutput(const VARIANT & newValue);
Output屬性用于向發(fā)送緩沖區(qū)寫數(shù)據(jù)流。屬性為VARIANT變量。該屬性在端口未打開時(shí)不可用,在運(yùn)行時(shí)只是寫的。
注意:Output屬性可以發(fā)送文本數(shù)據(jù)或二進(jìn)制數(shù)據(jù)。傳輸文本數(shù)據(jù)時(shí),應(yīng)該將字符型
數(shù)據(jù)放入VARIANT變量中;傳輸二進(jìn)制數(shù)據(jù)(即按字節(jié)傳送)時(shí),應(yīng)將字節(jié)型數(shù)據(jù)放入VARIANT型變量中。如果通常給應(yīng)用程序發(fā)送ANSI字符串,可以以文本方式發(fā)送。如果數(shù)據(jù)包含了內(nèi)嵌控制字符、NULL字符等,必須將其作為二進(jìn)制傳遞過去。

16) CommEvent屬性

short GetCommEvent();
如果在通信過程中發(fā)生錯(cuò)誤或事件,將會(huì)引發(fā)OnComm事件并且改變其屬性值。CommEvent屬性值反映錯(cuò)誤或者事件類型,通信的設(shè)計(jì)中可以根據(jù)該屬性值執(zhí)行同的***作。該屬性在端口未打開時(shí)不可用,在運(yùn)行時(shí)是只讀的。通信錯(cuò)誤及通信事件的設(shè)定值分別如下兩表所示。
通信錯(cuò)誤      設(shè)定值     設(shè)定值值描述
comEventBreak     1001    接收到中斷信號(hào)
comEventCTSTO 1002    CTS超時(shí)
comEventDSRTO 1003    DSR超時(shí)
comEventFrame    1004   幀錯(cuò)誤,硬件檢測(cè)到一個(gè)幀出錯(cuò),雙方設(shè)置的格式不一致時(shí),就會(huì)引發(fā)此錯(cuò)誤
comEventOverrun 1006    端口超速。一個(gè)字符沒有在下一個(gè)字符到達(dá)之前被硬件讀取,該字符丟失
comEventCDTO     1007   數(shù)據(jù)檢測(cè)超時(shí)
comEventRxOver   1008   接收緩沖區(qū)溢出
comEventRxParity 1009   奇偶校驗(yàn)錯(cuò)誤
comEventTxFull     1010   傳輸緩沖區(qū)溢出,表明輸出緩沖區(qū)已滿,不能再將字符輸出到緩沖區(qū)
comEventDCB       1011   檢索端口、設(shè)備控制塊(DCB)時(shí)的意外錯(cuò)誤

通信事件     設(shè)定值       設(shè)定值值描述
comEvSend        1                       發(fā)送事件。發(fā)送緩沖區(qū)的內(nèi)容少于SThreshold指定的值
comEvReceive    2       接收事件。接收緩沖區(qū)內(nèi)字符數(shù)達(dá)到RThreshold值,該事件在緩沖區(qū)內(nèi)數(shù)據(jù)被 移走前將持續(xù)產(chǎn)生,利用此事件可編寫接收數(shù)據(jù)的過程
comEvCTS          3 CTS線變化
comEvDSR         4   DSR線變化
comEvCD            5 CD線變化
comEvRing         6   振鈴檢測(cè)
comEvEOF         7   文件結(jié)束。接收數(shù)據(jù)中出現(xiàn)文件結(jié)束(ASCII 碼26)字符

17) DTREnable屬性
void SetDTREnable(BOOL bNewValue); BOOL GetDTREnable();
DTREnable屬性確定在通信時(shí)是否使用DTR線有效,DTR是計(jì)算機(jī)發(fā)送到調(diào)制解調(diào)器的信號(hào),表明計(jì)算機(jī)在等待數(shù)據(jù)傳輸。

18) RTSEnable屬性
void SetRTSEnable(BOOL bNewValue); BOOL GetRTSEnable();
RTSEnable屬性確定是否使用RTS線有效。一般情況下,由計(jì)算機(jī)發(fā)送RTS信號(hào)到連接的調(diào)制解調(diào)器,請(qǐng)求允許發(fā)送數(shù)據(jù)。

19) EOFEnable屬性
void SetEOFEnable(BOOL bNewValue); BOOL GetEOFEnable();
EOFEnable屬性確定在輸入過程中MSComm控件是否尋找文件結(jié)尾(EOF)字符。如果找到EOF字符,將停止輸入并激活OnComm事件,此時(shí)CommEvent屬性設(shè)置為comEvEOF,這里bNewValue為布爾表達(dá)式,確定當(dāng)找到EOF字符時(shí),OnComm事件是否被激活。當(dāng)bNewValue的設(shè)置值TRUE時(shí),EOF字符找到時(shí)OnComm事件被激活。否則當(dāng)VALUE值設(shè)為FALSE(默認(rèn))時(shí),EOF字符找到時(shí)OnComm事件不被激活。
注意:當(dāng)EOFEnable屬性設(shè)置為FALSE時(shí),OnComm控件將不在輸入流中尋找EOF字符。

20) CDHolding屬性
void SetCDHolding(BOOL bNewValue); BOOL GetCDHolding();
通過查詢CD線的狀態(tài)確定當(dāng)前是否有傳輸。CD是從調(diào)制解調(diào)器發(fā)送到相連計(jì)算機(jī)的一個(gè)信號(hào),指示調(diào)制解調(diào)器正在聯(lián)機(jī)。該屬性在設(shè)計(jì)時(shí)無效,在運(yùn)行時(shí)為只讀。屬性的設(shè)置值為:當(dāng)bNewValue為TRUE時(shí),CD線為高電平;當(dāng)bNewValue為FALSE時(shí),CD線為低電平。注意當(dāng)CD線為高電平(CDHolding=TRUE)且超時(shí)時(shí),MSComm控件設(shè)置CommEvent屬性為comEventCDTO(CD超時(shí)錯(cuò)誤),并產(chǎn)生OnComm事件。
注意:在主機(jī)應(yīng)用程序中捕獲一個(gè)丟失的傳輸是特別重要的,例如一個(gè)公告板,因?yàn)楹艚姓呖梢噪S時(shí)掛起(放棄傳輸)。CD也被稱為Receive LineSignal Detect(RLSD)。

21) DSRHolding屬性
void SetDSRHolding(BOOL bNewValue); BOOL GetDSRHolding();
確定DSR線的狀態(tài)。DSR信號(hào)由調(diào)制解調(diào)器發(fā)送到相連計(jì)算機(jī),指示作好***作準(zhǔn)備。該屬性在設(shè)計(jì)時(shí)無效,在運(yùn)行時(shí)為只讀。DSRHolding屬性返回為TRUE時(shí),表示DSR線高,返回FALSE時(shí),表示DSR線低。當(dāng)DSR線為高電平時(shí)(DSRHolding=TRUE)超時(shí)時(shí),MSComm控件設(shè)置CommEvent屬性為comEventDSRTO(數(shù)據(jù)準(zhǔn)備超時(shí))并產(chǎn)生OnComm事件。當(dāng)為DTE(Data TerminalEquipment)機(jī)器寫DSR/DTR握手例程時(shí)該屬性是分有用的。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
(三)MSComm控件進(jìn)行串口編程的基本步驟
CMSComm控件串口編程
用vs2010開發(fā)基于VC++的MFC 串口通信一*****兩臺(tái)電腦同一個(gè)串口號(hào)之間的通信
串口通訊-基本知識(shí)-MSComm 控件
VB Mscomm控件串口通訊應(yīng)用1
WIN7系統(tǒng)中Delphi中安裝MSCOMM控件方法(保證有用)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服