免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 回復 發帖

VB 控制項通信原理文檔

一.
串列通訊組件(MSComm 控制項)包含在專業版及企業版中.
MSComm 組件並不是主動出現在工具箱的,當我們需要用到它時,做如下步驟:
1.工具箱上按右鍵,在彈出的對話方塊中選擇 "部件..."選項
2."控制項"標籤中,找到"Microsoft Comm Control6.0"選項,並勾選它,然後按"確定"
3.這時,工具箱中會出現一個"電話機"的圖示.已經OK.
(我用的是簡體中文版的.)
.屬性
常用屬性

說明
CommPort
設置通訊埠號 (1-16).:MSComm1.CommPort=1 '指定使用COM1作通訊傳輸.
Settings:以字串的形式設置並返回串列傳輸速率、同位元、資料位元、停止位元.
格式為"BBBB,P,D,S".預設值為"9600,N,8,1"
BBBB為連線速度,
P為同位元檢查方式,None(預設值),Even偶數,Mark記號,Odd奇數,Space空白.
D為數據位元數,4-8.
S為停止位,1,1.5,3.
"9600,N,8,1"的意思是"所使用的通訊埠是以每秒9600 Bit的速度作傳輸,不作同位的檢查,每個元是8Bit,而停止位是1Bit"
:四項的順序是不可前後對調的,其中的字母N可以是大寫,也可以是小寫.
HandShaking:設置通訊雙方的交握協定,即流量控制.
0-comNone:(預設值)沒有交握協議.
1-comXOnXOff:(Xon/Xoff)交握協議.
2-comRTS:RTS/CTS(RequestTo Send/CLear To Send)交握協議.
3-comRTSXonXoff:RequestTo SendXon/Xoff交握協議.
Output: 將一個字串寫入傳輸緩衝區.
:MSComm1.Output="ABCDE",此即將ABCDE 5個字元通過RS232傳送出去.
Input: 從對方所傳至輸入緩衝區的字元讀進程式,並清除緩衝區中已被讀取的字元.這是一種FIFO(firstin first out)的機制.
:Buffer$=MSComm1.Input.將輸入緩衝區的字元讀入Buffer字串變數中.
InputLen: 指定由序列埠讀入的字串長度.(每次讀取input時,讀取多少位元組)
MSComm1.InputLen=10'程式執行Input指令時,只會讀取10個字元.假設在輸入緩衝區中有
55個位元組,則每次Input指令會讀取10個位元組進來,因此要全部讀完所有的資料需要執行6Input指令.
RThreshold:接受的字元數.RTHreshold=1----表示當有一個位元組到達接收緩衝區時,回應OnComm事件。RTHreshold=10----表示10個位元組到達時才回應OnComm事件。

SThreshold:傳輸中所能允許的最小字元數. 設置 Sthreshold 屬性為 0(缺省值),資料傳輸事件不會產生 OnComm 事件。若設置 Sthreshold 屬性為 1,當傳輸緩衝區完全空時,MSComm 控制項產生 OnComm 事件。如果在傳輸緩衝區中的字元數小於 valueCommEvent 屬性設置為 comEvSend,並產生 OnComm 事件。comEvSend 事件僅當字元數與 Sthreshold 交叉時被啟動一次。例如,如果 Sthreshold 等於 5,僅當在輸出佇列中字元數從 5 降到 4 時,comEvSend 才發生。如果在輸出佇列中從沒有比 Sthreshold 多的字元,comEvSend 事件將絕不會發生。
DTREnable:決定是否使Request To Send(RTS)行有效.
PortOpen:設置通訊埠的狀態.True(打開)/False(關閉).
.錯誤消息

下面列出了 MSComm 控制項可以捕獲的錯誤:
錯誤號: 描述

380         無效屬性值 comInvalidPropertyValue
383   屬性為唯讀 comSetNotSupported
394       屬性為唯讀comGetNotSupported
8000    埠打開時操作不合法 comPortOpen
8001    超時值必須大於 0
8002     無效埠號 comPortInvalid
8003      屬性只在運行時有效
8004   屬性在運行時為唯讀
8005      埠已經打開 comPortAlreadyOpen
8006   設備識別字無效或不支援該識別字
8007   不支援設備的串列傳輸速率
8008   指定的位元組大小無效
8009     缺省參數錯誤
8010      硬體不可用(被其它設備鎖定)
8011      函數不能分配佇列
8012   設備沒有打開 comNoOpen
8013   設備已經打開
8014   不能使用 comm 通知
8015      不能設置 comm 狀態 comSetCommStateFailed
8016   不能設置 comm 事件遮罩
8018   僅當埠打開時操作才有效 comPortNotOpen
8019   設備忙
8020   讀 comm 設備錯誤 comReadError
8021   為該埠檢索設備控制塊時的內部錯誤 comDCBError

返回列表