天天看點

MSComm的屬性、事件及方法

Delphi  MSComm 實時序列槽通訊 

MSComm控件具有豐富的與序列槽通信密切相關的屬性,提供了對序列槽進行的多種操作,進而使串行通信變得十分簡便。MSComm的控件屬性較多,常用的屬性如下:

1).CommPort:設定或傳回串行端口号,預設為1。

2).Setting:設定或傳回序列槽通信參數,格式為“波特率,奇偶校驗位,資料位,停止位”。例如:MSComm1.Setting:=9600,n,8,1

3).PortOpen:打開或關閉串行端口,格式為:MSComm1.PortOpen:={True|False}

4).InBufferSize:設定或傳回接收緩沖區的大小,預設值為1024位元組。

5).InBufferCount:傳回接收緩沖區内等待讀取的位元組數,可通過設定該屬性為0來清空接收緩沖區。

6).RThreshold:該屬性為一門檻值,它确定當接收緩沖區内的位元組個數達到或超過該值後就産生代碼為ComEvReceive的OnComm事件。

7).SThreshold:該屬性為一門檻值,它确定當發送緩沖區内的位元組個數少于該值後就産生代碼為ComEvSend的OnComm事件。

8).InputLen:設定或傳回接收緩沖區内用Input讀入的位元組數,設定該屬性為0表示Input讀取整個緩沖區的内容。

9).Input:從接收緩沖區讀取一串字元。

10).OutBufferSize:設定或傳回發送緩沖區的大小,預設值為512位元組。

11).OutBufferCount:傳回發送緩沖區内等待發送的位元組數,可通過設定該屬性為0來清空緩沖區。  

12).OutPut:向發送緩沖區傳送一串字元。

在通信過程中發生的錯誤或事件會引發OnComm事件,并由CommEvent屬性值反映錯誤類型,程式根據該屬性值來執行不同的操作。CommEvent屬性值及其含義如下:

1).ComEvSend:值為1,發送緩沖區的内容少于SThreshold指定的值。

2).ComEvReceive:值為2,接收緩沖區内字元數達到RThreshold指定的值。

3).ComEvFrame:值為1004,硬體檢測到幀錯誤。

4).ComEvRxOver:值為1008,接收緩沖區溢出。

5).ComEvTxFull:值為1010,發送緩沖區溢出。

6).ComEvRxParity:值為1009,奇偶校驗錯誤。

7).ComEvEOF:值為7,接收資料中出現檔案尾(ASCII碼為26)字元。

繼續閱讀