程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 關於MSCOMM控件的一些解釋第1/2頁

關於MSCOMM控件的一些解釋第1/2頁

編輯:VB綜合教程

關於MSCOMM控件的一些解釋第1/2頁。本站提示廣大學習愛好者:(關於MSCOMM控件的一些解釋第1/2頁)文章只能為提供參考,不一定能成為您想要的結果。以下是關於MSCOMM控件的一些解釋第1/2頁正文


關於MSCOMM控件的一些解釋
   VB5.0/6.的MSComm通訊控件供給了一系列尺度通訊敕令的接口,它許可樹立串口銜接,可以銜接到其他通訊裝備(如Modem).
還可以發送死令、停止數據交流和監督和呼應在通訊進程中能夠產生的各類毛病和事宜,從而可以用它創立全雙工 、事宜驅
動的、高效適用的通訊法式。但在現實通訊軟件設計進程中,MSComm控件並不是像想像中那樣完善和輕易掌握.特殊是在中文Wln
 95/98下通訊時更會湧現成績。上面就從基本開端引見,然後慢慢討淪MSComm控件在編程中湧現的成績和編程技能。
1、用MSComm控件通訊
1.串口通訊基本常識
    普通悅來,盤算機都有一個或多個串行端口,它們順次為com1、Com2、…,這些串口還供給了內部裝備與pC停止數據傳輸和
皿信的通道。這些串口在CPU和外設之間充任說明器的腳色。當字符數據從CPU發送給外設時,這些字符數據將被轉換成串行比特
流數據;當吸收數據時,比特流數據被轉換為字符數據傳遞給CPU,再進一步說,在操作體系方面,Windows用通訊驅動法式
(COMM.DRV)挪用API函數發送和吸收數據,當用通訊控件或聲明挪用API函數時,它門由COMM. DRV說明並傳遞給裝備驅動法式,
作為一個vB法式員,要編寫通訊法式.只需曉得通訊控件供給給Windows通訊AP1函數的接口便可.換句話說,只需設定和監督通
信控件的屬性和事宜便可。
2.應用Mscomm控件
在開端應用MSComm控件之前。須要先懂得其屬性、事宜或毛病
屬性            描寫
CommPort    設置或前往通訊端標語
Settings    以字符串的情勢設置或前往波特率、奇偶校驗、數據位和停滯位
PortOpen    設置或前往通訊端口的狀況。也能夠翻開和封閉端口
Input       前往和刪除吸收緩沖區中的字符
Output      將字符串寫入發送緩沖區

CommEvent屬性為通訊事宜或毛病前往以下值之一。在該控件的對象庫中也能夠找到這些常量。
常量           值        描寫
ComEventBreak   1001    收到了斷開旌旗燈號
ComEventCTSTO   1002    Clear To Send Timeout。在發送字符時,在體系指定的事1件內,CTS(Clear To Send)線是低電平
ComEventDSRTO   1003    Data Set Ready Timeout。在發送字符時,在體系指定的事宜內,DSR(Data Set Ready)線是低電平
ComEventFrame   1004    數據幀毛病。硬件檢測到一個數據幀毛病
ComEventOverrun 1006    端口溢出。硬件中的字符還沒有讀,下一個字符又達到,而且喪失
ComEventCDTO    1007    Carrier Detect Time。在發送字符時,在體系指定的事宜內,CD(Carrier Detect)線是低電平。CD
                        也稱為RLSD(Receive Line Singal Detect,吸收線旌旗燈號檢測)
ComEventRxOver  1008    吸收緩沖區溢出。在吸收緩沖區中沒有空間
ComEventRxParity 1009   奇偶校驗錯。硬件檢測到奇偶校驗毛病7
ComEventTxFull  1010    發送緩沖區滿。在對發送字符列隊時,發送緩沖區滿
ComEventDCB     1011    檢取端口DCB(Device Control Blick)時產生了沒有預感到的毛病

通訊事宜包括了上面的設置:
 常量         值        描寫
ComEvSend      1    發送緩沖區中的字符數比Sthreshold值低
ComEvReceive   2    吸收到了Rthreshold個字符。連續發生該事宜,直到應用了Input屬性刪除吸收緩沖區中的數據
ComEvCTS       3    CTS(Clear To Send)線轉變
ComEvDSR       4    DSR(Data Set Ready)線轉變。當DSR從1到0轉變時,該事宜產生
ComEvCD        5    CD(Carrier Detect)線轉變ComEvRing6檢測到響鈴旌旗燈號。一些URAT(Universal AsynchronousReciver-
                    -Transmitters,通用異步收發器)不支撐該事宜
ComEvEOF       7    收到了EOF字符(ASCII字符26)

Error新聞(MSComm控件)下表列出了MSComm控件可捕捉的毛病新聞:
常量                       值      描寫
ComInvalidPropertyValue    380   有效的屬性值
ComSetNotSupported         383   屬性只讀
ComGetNotSupported         394   屬性只讀
ComPortOpen               8000   端口翻開時該存在有效
                          8001   超時設置必需比0值年夜
ComPortInvalid            8002   有效的端標語
                          8003   屬性只在運轉時有用
                          8004   屬性在運轉時是只讀的
ComPortAleadyOpen         8005   端口曾經翻開
                          8006   裝備標識符有效或不支撐
                          8007   不支撐裝備的波特率
                          8008   指定的字節年夜小有效
                          8009   缺省參數毛病
                          8010   硬件弗成用(被其他裝備鎖住)
                          8011   函數不克不及分派隊列
ComNoOpen                 8012   裝備沒有翻開
                          8013   裝備曾經翻開
                          8014   不克不及應用通訊告訴
ComSetCommStateFailed     8015   不克不及設置通訊狀況
                          8016   不克不及設置通訊事宜屏障
ComPortNotOpen            8018   該存在只在端口翻開是有用
                          8019   裝備忙
ComReadError              8020   通訊裝備讀毛病
ComDCBError               8021   檢取端口裝備掌握塊時湧現外部毛病

弄清晰以上根本屬性後,便可以開端編寫通訊許法式了。在VB5.0/6.0中新建一個工程文件。添加Microsoft Comm Control 5.0組
件,在簡體Form1中參加Command敕令按鈕並取名為CmdTest,MSComm控件取名為MSComm1,參加以下法式代碼。
Private Sub cmdTestClick ( )            '翻開串口
MSComml.CommPort =2                     '設定Com2
If MSComml.PortOpen = False Then
MSComm1.Settings = "9600,n,8,1"         '9600波特率,無校驗,8位數據位,1位停滯位
MSComm1.PortOpen = True                 '翻開串口
End if
MSComm1.OutBufferCount = 0              '清空發送緩沖區
MSComm1.InBufferCount = 0               '滑空吸收緩沖區

'發送字符數據時留意必需用回車符(vbcr)停止
MSComm1.Output="This is a qood book ! " &vbCr

'潑打德律風號碼或發送AT敕令
MSComm1.Output = "ATDT 05778191898 , & vbCr

'發送字符數組數據時留意ByteArray必需事前界說賦值
Dim ByteArray as byte( )

'界說靜態數組
ReDim ByteArray(1)

'重界說數組年夜小
ByteArray ( 0 ) =0
ByteArray ( 1 ) = 1
MSComm1.Output = ByteArray
End Sub

private Sub MScommEvent( )
Select Case MSComm1.CommEvent
Case comEvReceive
Dim Buffer As Variant
MSComm1.InputLen = 0
'吸收二進制數據
MSComm1.InputMode= ComInputModeBinary
Buffer=MSComm1.Input
'吸收字符數據
MSComm1.InputMode=comInputModeText
Buffer = MSComml.Input
Case else
End Select
End sub 
( 法式1)
以後1/2頁 12下一頁浏覽全文
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved