串列埠通訊-MSComm控制元件使用詳解
阿新 • • 發佈:2019-01-25
ComPort屬性:設定並返回通訊埠號。
語法 object.CommPort[value ] (value 一整型值,說明埠號。)
說明 在設計時,value 可以設定成從 1 到 16 的任何數(預設值為 1)。但是如果用 PortOpen 屬性開啟一個並不存在的埠時,MSComm 控制元件會產生錯誤 68(裝置無效)。
注意:必須在開啟埠之前設定 CommPort 屬性。
RThreshold屬性:在 MSComm 控制元件設定 CommEvent 屬性為 comEvReceive 併產生 OnComm 之前,設定並返回的要接收的字元數。
語法 object.Rthreshold [ = value ](value 整型表示式,說明在產生 OnComm 事件之前要接收的字元數。 )
說明 當接收字元後,若 Rthreshold 屬性設定為 0(預設值)則不產生 OnComm 事件。例如,設定 Rthreshold 為 1,接收緩衝區收到每一個字元都會使 MSComm 控制元件產生 OnComm 事件。
CTSHolding屬性:確定是否可通過查詢 Clear To Send (CTS) 線的狀態傳送資料。Clear To Send 是調變解調器傳送到相聯計算機的訊號,指示傳輸可以進行。該屬性在設計時無效,在執行時為只讀。
語法: object.CTSHolding(Boolean)
Mscomm 控制元件的 CTSHolding 屬性設定值:
True Clear To Send 線為高電平。
False Clear To Send 線為低電平。
說明:如果 Clear To Send 線為低電平 (CTSHolding = False) 並且超時時,MSComm 控制元件設定 CommEvent 屬性為 comEventCTSTO (Clear To Send Timeout) 併產生 OnComm 事件。
Clear To Send 線用於 RTS/CTS (Request To Send/Clear To Send) 硬體握手。如果需要確定 Clear To Send 線的狀態,CTSHolding 屬性給出一種手工查詢的方法。
詳細資訊 有關握手協議,請參閱 Handshaking 屬性。
SThreshold屬性: MSComm 控制元件設定 CommEvent 屬性為 comEvSend 併產生 OnComm 事件之前,設定並返回傳輸緩衝區中允許的最小字元數。
語法 object.SThreshold [ = value ]
value 整形表示式,代表在 OnComm 事件產生之前在傳輸緩衝區中的最小字元數。
說明:若設定 Sthreshold 屬性為 0(預設值),資料傳輸事件不會產生 OnComm 事件。若設定 Sthreshold 屬性為 1,當傳輸緩衝區完全空時,MSComm 控制元件產生 OnComm 事件。如果在傳輸緩衝區中的字元數小於 value,CommEvent 屬性設定為 comEvSend,併產生 OnComm 事件。comEvSend 事件僅當字元數與 Sthreshold 交叉時被啟用一次。例如,如果 Sthreshold 等於 5,僅當在輸出佇列中字元數從 5 降到 4 時,comEvSend 才發生。如果在輸出佇列中從沒有比 Sthreshold 多的字元,comEvSend 事件將絕不會發生。
HandShake 常數
常數 值 描述
comNone 0 無握手。
comXonXoff 1 XOn/Xoff 握手。
comRTS 2 Request-to-send/clear-to-send 握手。
comRTSXOnXOff 3 Request-to-send 和 clear-to-send 握手皆可。
OnComm 常數
常數 值 描述
comEvSend 1 傳送事件。
comEvReceive 2 接收事件。
comEvCTS 3 clear-to-send 線變化。
comEvDSR 4 data-set ready 線變化。
comEvCD 5 carrier detect 線變化。
comEvRing 6 振鈴檢測。
comEvEOF 7 檔案結束。
Error常數
常數 值 描述
comEventBreak 1001 接收到中斷訊號
comEventCTSTO 1002 Clear-to-send 超時
comEventDSRTO 1003 Data-set ready 超時
comEventFrame 1004 幀錯誤
comEventOverrun 1006 埠超速
comEventCDTO 1007 Carrier detect 超時
comEventRxOver 1008 接收緩衝區溢位
comEventRxParity 1009 Parity 錯誤
comEventTxFull 1010 傳輸緩衝區滿
comEventDCB 1011 檢索埠 裝置控制塊 (DCB) 時的意外錯誤
語法 object.CommPort[value ] (value 一整型值,說明埠號。)
說明 在設計時,value 可以設定成從 1 到 16 的任何數(預設值為 1)。但是如果用 PortOpen 屬性開啟一個並不存在的埠時,MSComm 控制元件會產生錯誤 68(裝置無效)。
注意:必須在開啟埠之前設定 CommPort 屬性。
RThreshold屬性:在 MSComm 控制元件設定 CommEvent 屬性為 comEvReceive 併產生 OnComm 之前,設定並返回的要接收的字元數。
語法 object.Rthreshold [ = value ](value 整型表示式,說明在產生 OnComm 事件之前要接收的字元數。 )
說明 當接收字元後,若 Rthreshold 屬性設定為 0(預設值)則不產生 OnComm 事件。例如,設定 Rthreshold 為 1,接收緩衝區收到每一個字元都會使 MSComm 控制元件產生 OnComm 事件。
CTSHolding屬性:確定是否可通過查詢 Clear To Send (CTS) 線的狀態傳送資料。Clear To Send 是調變解調器傳送到相聯計算機的訊號,指示傳輸可以進行。該屬性在設計時無效,在執行時為只讀。
語法: object.CTSHolding(Boolean)
Mscomm 控制元件的 CTSHolding 屬性設定值:
True Clear To Send 線為高電平。
False Clear To Send 線為低電平。
說明:如果 Clear To Send 線為低電平 (CTSHolding = False) 並且超時時,MSComm 控制元件設定 CommEvent 屬性為 comEventCTSTO (Clear To Send Timeout) 併產生 OnComm 事件。
Clear To Send 線用於 RTS/CTS (Request To Send/Clear To Send) 硬體握手。如果需要確定 Clear To Send 線的狀態,CTSHolding 屬性給出一種手工查詢的方法。
詳細資訊 有關握手協議,請參閱 Handshaking 屬性。
SThreshold屬性: MSComm 控制元件設定 CommEvent 屬性為 comEvSend 併產生 OnComm 事件之前,設定並返回傳輸緩衝區中允許的最小字元數。
語法 object.SThreshold [ = value ]
value 整形表示式,代表在 OnComm 事件產生之前在傳輸緩衝區中的最小字元數。
說明:若設定 Sthreshold 屬性為 0(預設值),資料傳輸事件不會產生 OnComm 事件。若設定 Sthreshold 屬性為 1,當傳輸緩衝區完全空時,MSComm 控制元件產生 OnComm 事件。如果在傳輸緩衝區中的字元數小於 value,CommEvent 屬性設定為 comEvSend,併產生 OnComm 事件。comEvSend 事件僅當字元數與 Sthreshold 交叉時被啟用一次。例如,如果 Sthreshold 等於 5,僅當在輸出佇列中字元數從 5 降到 4 時,comEvSend 才發生。如果在輸出佇列中從沒有比 Sthreshold 多的字元,comEvSend 事件將絕不會發生。
HandShake 常數
常數 值 描述
comNone 0 無握手。
comXonXoff 1 XOn/Xoff 握手。
comRTS 2 Request-to-send/clear-to-send 握手。
comRTSXOnXOff 3 Request-to-send 和 clear-to-send 握手皆可。
OnComm 常數
常數 值 描述
comEvSend 1 傳送事件。
comEvReceive 2 接收事件。
comEvCTS 3 clear-to-send 線變化。
comEvDSR 4 data-set ready 線變化。
comEvCD 5 carrier detect 線變化。
comEvRing 6 振鈴檢測。
comEvEOF 7 檔案結束。
Error常數
常數 值 描述
comEventBreak 1001 接收到中斷訊號
comEventCTSTO 1002 Clear-to-send 超時
comEventDSRTO 1003 Data-set ready 超時
comEventFrame 1004 幀錯誤
comEventOverrun 1006 埠超速
comEventCDTO 1007 Carrier detect 超時
comEventRxOver 1008 接收緩衝區溢位
comEventRxParity 1009 Parity 錯誤
comEventTxFull 1010 傳輸緩衝區滿
comEventDCB 1011 檢索埠 裝置控制塊 (DCB) 時的意外錯誤