labview串口通訊的深入分析.
說明:若設(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ù)
本文引用地址:http://www.butianyuan.cn/article/201701/337261.htm
常數(shù) | 值 | 描述 |
comNone | 0 | 無(wú)握手。 |
comXonXoff | 1 | XOn/Xoff 握手。 |
comRTS | 2 | Request-to-send/clear-to-send 握手。 |
comRTSXOnXOff | 3 | Request-to-send 和 clear-to-send 握手皆可。 |
OnComm 常數(shù)
常數(shù) | 值 | 描述 |
comEvSend | 1 | 發(fā)送事件。 |
comEvReceive | 2 | 接收事件。 |
comEvCTS | 3 | clear-to-send 線變化。 |
comEvDSR | 4 | data-set ready 線變化。 |
comEvCD | 5 | carrier detect 線變化。 |
comEvRing | 6 | 振鈴檢測(cè)。 |
comEvEOF | 7 | 文件結(jié)束。 |
Error 常數(shù)
常數(shù) | 值 | 描述 |
comEventBreak | 1001 | 接收到中斷信號(hào) |
comEventCTSTO | 1002 | Clear-to-send 超時(shí) |
comEventDSRTO | 1003 | Data-set ready 超時(shí) |
comEventFrame | 1004 | 幀錯(cuò)誤 |
comEventOverrun | 1006 | 端口超速 |
comEventCDTO | 1007 | Carrier detect 超時(shí) |
comEventRxOver | 1008 | 接收緩沖區(qū)溢出 |
comEventRxParity | 1009 | Parity 錯(cuò)誤 |
comEventTxFull | 1010 | 傳輸緩沖區(qū)滿 |
comEventDCB | 1011 | 檢索端口 設(shè)備控制塊 (DCB) 時(shí)的意外錯(cuò)誤 |
InputMode 常數(shù)
常數(shù) | 值 | 描述 |
comInputModeText | 0 (缺?。?/td> | 通過 Input 屬性以文本方式取回?cái)?shù)據(jù)。 |
comInputModeBinary | 1 | 通過 Input 屬性以二進(jìn)制方式檢取回?cái)?shù)據(jù)。 |
CDHolding 屬性:通過查詢 Carrier Detect (CD) 線的狀態(tài)確定當(dāng)前是否有傳輸。Carrier Detect 是從調(diào)制解調(diào)器發(fā)送到相聯(lián)計(jì)算機(jī)的一個(gè)信號(hào),指示調(diào)制解調(diào)器正在聯(lián)機(jī)。該屬性在設(shè)計(jì)時(shí)無(wú)效,在運(yùn)行時(shí)為只讀。
語(yǔ)法 object.CDHolding
設(shè)置值:CDHolding 屬性的設(shè)置值為:
設(shè)置 | 描述 |
True | Carrier Detect 線為高電平 |
False | Carrier Detect 線為低電平 |
說明:注意當(dāng) Carrier Detect 線為高電平 (CDHolding = True) 且超時(shí)時(shí),MSComm 控件設(shè)置CommEvent 屬性為 comEventCDTO(Carrier Detect 超時(shí)錯(cuò)誤),并產(chǎn)生 OnComm 事件。
注意 在主機(jī)應(yīng)用程序中捕獲一個(gè)丟失的傳輸是特別重要的,例如一個(gè)公告板,因?yàn)楹艚姓呖梢噪S時(shí)掛起(放棄傳輸)。
Carrier Detect 也被稱為 Receive Line Signal Detect (RLSD)。
數(shù)據(jù)類型:Boolean
DSRHolding 屬性:確定 Data Set Ready (DSR) 線的狀態(tài)。Data Set Ready 信號(hào)由調(diào)制解調(diào)器發(fā)送到相連計(jì)算機(jī),指示作好操作準(zhǔn)備。該屬性在設(shè)計(jì)時(shí)無(wú)效,在運(yùn)行時(shí)為只讀。
語(yǔ)法:object.DSRHolding
object 所在處表示對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的對(duì)象。
DSRHolding 屬性返回以下值:
值 | 描述 | 說明 |
True | Data Set Ready 線高 | 當(dāng) Data Set Ready 線為高電平 (DSRHolding = True) 且超時(shí)時(shí),MSComm 控件設(shè)置 CommEvent 屬性為 comEventDSRTO(數(shù)據(jù)準(zhǔn)備超時(shí))并產(chǎn)生 OnComm 事件。 當(dāng)為 Data Terminal Equipment (DTE) 機(jī)器寫 Data Set Ready/Data Terminal Ready 握手例程時(shí)該屬性是十分有用的。 數(shù)據(jù)類型:Boolean |
False | Data Set Ready 線低 |
Settings 屬性: 設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位參數(shù)。
語(yǔ)法: object.Settings[ = value]
說明:當(dāng)端口打開時(shí),如果 value 非法,則 MSComm 控件產(chǎn)生錯(cuò)誤 380(非法屬性值)。
Value 由四個(gè)設(shè)置值組成,有如下的格式:
"BBBB,P,D,S"
BBBB 為波特率,P 為奇偶校驗(yàn),D 為數(shù)據(jù)位數(shù),S 為停止位數(shù)。value 的缺省值是:
"9600,N,8,1"
InputLen 屬性:設(shè)置并返回 Input 屬性從接收緩沖區(qū)讀取的字符數(shù)。
語(yǔ)法 object.InputLen [ = value]
InputLen 屬性語(yǔ)法包括下列部分:
value 整型表達(dá)式,說明 Input 屬性從接收緩沖區(qū)中讀取的字符數(shù)。
說明:InputLen 屬性的缺省值是 0。設(shè)置 InputLen 為 0 時(shí),使用 Input 將使 MSComm 控件讀取接收緩沖區(qū)中全部的內(nèi)容。
若接收緩沖區(qū)中 InputLen 字符無(wú)效,Input 屬性返回一個(gè)零長(zhǎng)度字符串 ("")。在使用 Input 前,用戶可以選擇檢查 InBufferCount 屬性來(lái)確定緩沖區(qū)中是否已有需要數(shù)目的字符。該屬性在從輸出格式為定長(zhǎng)數(shù)據(jù)的機(jī)器讀取數(shù)據(jù)時(shí)非常有用。
EOFEnable 屬性:確定在輸入過程中 MSComm 控件是否尋找文件結(jié)尾 (EOF) 字符。如果找到 EOF 字符,將停止輸入并激活 OnComm 事件,此時(shí) CommEvent 屬性設(shè)置為 comEvEOF,
語(yǔ)法:object.EOFEnable [ = value ]
EOFEnable 屬性語(yǔ)法包括下列部分:
value 布爾表達(dá)式,確定當(dāng)找到 EOF 字符時(shí),OnComm 事件是否被激活,如“設(shè)置值”中所描述。
value 的設(shè)置值:
True 當(dāng) EOF 字符找到時(shí) OnComm 事件被激活。
False (缺?。┊?dāng) EOF 字符找到時(shí) OnComm 事件不被激活。
說明:當(dāng) EOFEnable 屬性設(shè)置為 False,OnComm 控件將不在輸入流中尋找 EOF 字符。
3.錯(cuò)誤消息(MS Comm 控件)
下表列出 MSComm 控件可以捕獲的錯(cuò)誤:
值 | 描述 |
380 | 無(wú)效屬性值 comInvalidPropertyValue |
383 | 屬性為只讀 comSetNotSupported |
394 | 屬性為只讀 comGetNotSupported |
8000 | 端口打開時(shí)操作不合法 comPortOpen |
8001 | 超時(shí)值必須大于 0 |
8002 | 無(wú)效端口號(hào) comPortInvalid |
8003 | 屬性只在運(yùn)行時(shí)有效 |
8004 | 屬性在運(yùn)行時(shí)為只讀 |
8005 | 端口已經(jīng)打開 comPortAlreadyOpen |
8006 | 設(shè)備標(biāo)識(shí)符無(wú)效或不支持該標(biāo)識(shí)符 |
8007 | 不支持設(shè)備的波特率 |
8008 | 指定的字節(jié)大小無(wú)效 |
8009 | 缺省參數(shù)錯(cuò)誤 |
8010 | 硬件不可用(被其它設(shè)備鎖定) |
8011 | 函數(shù)不能分配隊(duì)列 |
8012 | 設(shè)備沒有打開 comNoOpen |
8013 | 設(shè)備已經(jīng)打開 |
8014 | 不能使用 comm 通知 |
8015 | 不能設(shè)置 comm 狀態(tài) comSetCommStateFailed |
8016 | 不能設(shè)置 comm 事件屏蔽 |
8018 | 僅當(dāng)端口打開時(shí)操作才有效 comPortNotOpen |
8019 | 設(shè)備忙 |
8020 | 讀 comm 設(shè)備錯(cuò)誤 comReadError |
8021 | 為該端口檢索設(shè)備控制塊時(shí)的內(nèi)部錯(cuò)誤 comDCBError |
以上這部分轉(zhuǎn)載于網(wǎng)上.
評(píng)論