繁體
|
簡體
Sclub交友聊天~加入聊天室當版主
(檢舉)
分享
新浪微博
QQ空间
人人网
腾讯微博
Facebook
Google+
Plurk
Twitter
Line
標題:
VB 控制項通信原理文檔
[打印本頁]
作者:
mhfo
時間:
2012-12-28 12:07
標題:
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
的速度作傳輸
,
不作同位的檢查
,
每個元是
8
個
Bit,
而停止位是
1
個
Bit"
注
:
四項的順序是不可前後對調的
,
其中的字母
N
可以是大寫
,
也可以是小寫
.
HandShaking
:設置通訊雙方的交握協定
,
即流量控制
.
0-comNone:(
預設值
)
沒有交握協議
.
1-comXOnXOff:(Xon/Xoff)
交握協議
.
2-comRTS:RTS/CTS(RequestTo Send/CLear To Send)
交握協議
.
3-comRTSXonXoff:RequestTo Send
和
Xon/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
個位元組進來
,
因此要全部讀完所有的資料需要執行
6
次
Input
指令
.
RThreshold:
接受的字元數
.RTHreshold=1----
表示當有一個位元組到達接收緩衝區時,回應
OnComm
事件。
RTHreshold=10----
表示
10
個位元組到達時才回應
OnComm
事件。
SThreshold:
傳輸中所能允許的最小字元數
.
設置
Sthreshold
屬性為
0
(缺省值),資料傳輸事件不會產生
OnComm
事件。若設置
Sthreshold
屬性為
1
,當傳輸緩衝區完全空時,
MSComm
控制項
產生
OnComm
事件。如果在傳輸緩衝區中的字元數小於
value
,
CommEvent
屬性設置為
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
歡迎光臨 魚骨頭的雲端圖書館 (http://mhfo.hotbbs.info/)
Powered by Discuz! 7.0.0