亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        VB6.0的MSComm通信控件應(yīng)用舉例

        2009-03-27 08:17:38程巍巍
        合作經(jīng)濟(jì)與科技 2009年7期
        關(guān)鍵詞:計(jì)時(shí)器電話號(hào)碼控件

        程巍巍

        提要本文介紹了基于VB6.0的MSComm通信控件相關(guān)理論,并以一個(gè)實(shí)例演示了MSComm控件的主要屬性。

        關(guān)鍵詞:串行通信;VB6.0;MSComm控件

        中圖分類號(hào):F49文獻(xiàn)標(biāo)識(shí)碼:A

        在當(dāng)今這個(gè)科技飛速發(fā)展的時(shí)代,我們經(jīng)常需要在計(jì)算機(jī)與其他設(shè)備之間進(jìn)行通信,而串行通信作為一種靈活、方便、可靠的通信方式被廣泛采用。在開發(fā)串行通信程序的過程中,利用微軟的MSComm通信控件相對(duì)比較簡(jiǎn)單,該控件具有豐富的與串行通信密切相關(guān)的屬性及事件,提供了對(duì)串口的各種操作。MSComm控件在VB中容易使用,在串口編程時(shí)也非常方便,程序員不必花時(shí)間去了解較為復(fù)雜的API函數(shù)。

        一、用VB6.0進(jìn)行串行通信程序的設(shè)計(jì)方法簡(jiǎn)介

        用visual basic6.0進(jìn)行串行通信程序的設(shè)計(jì)有兩種方式:(1)直接調(diào)用Windows API。(2)使用通信組件。該方式實(shí)際上是通過通信組件間接調(diào)用Windows API函數(shù),其過程要比直接調(diào)用API要復(fù)雜,但在程序上容易實(shí)現(xiàn)。使用MSComm控件時(shí),實(shí)際上就是使用了API函數(shù),API函數(shù)將被Comm.drv解釋并傳送給外圍設(shè)備驅(qū)動(dòng)程序,使用MSComm的用戶只需要關(guān)心如何使用MSComm所提供的屬性或事件,以驅(qū)動(dòng)API函數(shù)的接口完成工作。

        二、串行通信程序的執(zhí)行過程

        MSComm控件通過串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通信功能。該控件提供了兩種處理通信的方式:

        1、事件驅(qū)動(dòng)通信。事件驅(qū)動(dòng)通信是處理串行端口交互作用的一種非常有效的方式。在使用事件驅(qū)動(dòng)通信時(shí),每當(dāng)有一個(gè)字符到達(dá)或端口狀態(tài)發(fā)生改變,或發(fā)生錯(cuò)誤時(shí),MSComm控件將觸發(fā)OnComm事件進(jìn)行捕獲,通過檢查MSComm控件的CommEvent屬性獲知所發(fā)生的事件或錯(cuò)誤,從而采取相應(yīng)的操作處理這些通信事件。這種方法的優(yōu)點(diǎn)是程序響應(yīng)及時(shí),可靠性高。

        2、查詢法。該方法可以在程序的每個(gè)關(guān)鍵功能之后,通過檢查CommEvent屬性的值來查詢事件和錯(cuò)誤。每個(gè)使用的MSComm控件對(duì)應(yīng)著一個(gè)串行端口。如果應(yīng)用程序需要訪問多個(gè)串行端口,必須使用多個(gè)MSComm控件。

        查詢法適合于較小的應(yīng)用程序,在這種情況下,每當(dāng)應(yīng)用程序執(zhí)行完某一串行口操作后,將不斷檢查MSComm控件的CommEvent屬性,以檢查執(zhí)行結(jié)果或檢查某一事件是否發(fā)生。

        而進(jìn)行串行通信時(shí)一般有兩種傳輸方式:

        (1)字符形式:通常以小于ASCII碼128的字符碼來傳遞,通常用于傳送指令。

        (2)二進(jìn)制形式:將數(shù)據(jù)以二進(jìn)制編碼的方式傳遞,它可能含有ASCII碼128以上的字符碼。通常用來傳送數(shù)據(jù),以提高速度。

        三、串行通信實(shí)例

        下面以一個(gè)實(shí)例來演示MSComm控件的主要屬性。根據(jù)程序需要,進(jìn)行以下操作步驟:

        1、新建工程。啟動(dòng)VB后,新建一個(gè)標(biāo)準(zhǔn)的EXE工程。

        2、設(shè)計(jì)用戶界面。(1)在“工具”菜單中選中“部件”,在“控件”選項(xiàng)卡中選擇“Microsoft Comm Controls6.0”。然后從工具箱中將MSComm添加到窗體Form1中。(2)給窗體Form1添加1個(gè)計(jì)時(shí)器控件,3個(gè)命令按鈕控件,并設(shè)置控件的相關(guān)屬性。(表1)

        3、編寫程序代碼

        Option Explicit

        Public echo As Boolean'回應(yīng)‘打開/關(guān)閉標(biāo)志

        Dim ret As Integer'設(shè)為整數(shù)

        Dim starttime As Data'為端口計(jì)時(shí)器存儲(chǔ)開始時(shí)間

        Private Sub command1_click()

        On Error Resume Next

        Dim openflag

        MSComm1.PortOpen = Not MSComm1.PortOpen

        If Err Then MsgBox Error$,48

        openflag = MSComm1.PortOpen

        If MSComm1.PortOpen Then

        starttiming

        End If

        End Sub

        Private Sub Command2_Click()

        On Local Error Resume Next

        Static num As String

        num="1-029-8936-6735"'MSDN的電話號(hào)碼'從用戶處獲得電話號(hào)碼

        num=InputBox$("輸入電話號(hào)碼:","撥打電話號(hào)碼",num)

        If num="" Then Exit Sub

        If Not MSComm1.PortOpen Then'如果端口沒有打開則打開它

        If Err Then Exit Sub

        End If

        MSComm1.Output="ATDT" & num & vbCrLf'撥打電話號(hào)碼

        starttiming'啟動(dòng)端口計(jì)時(shí)器

        End Sub

        Private Sub Command3_Click()

        On Error Resume Next

        MSComm1.Output="ATH"'發(fā)送掛機(jī)字符串

        ret=MSComm1.DTREnable'保存當(dāng)前設(shè)置

        MSComm1.DTREnable=True'打開DTR

        MSComm1.DTREnable=False'關(guān)閉DTR

        MSComm1.DTREnable=ret'恢復(fù)原來的設(shè)置'如果端口確實(shí)處于打開狀態(tài),則關(guān)閉它

        If MSComm1.PortOpen Then MSComm1.PortOpen = False

        If Err Then MsgBox Error$,48'通知用戶錯(cuò)誤信息

        stoptiming'停止端口計(jì)時(shí)器

        On Error GoTo 0

        End Sub

        'oncomm事件被用于捕獲communications事件及錯(cuò)誤

        Private Static Sub MSComm1_OnComm()

        Dim evmsg$

        Dim ermsg$

        '依據(jù)commecent屬性進(jìn)行分支

        Select Case MSComm1.CommEvent

        '事件信息

        Case comEvReceive

        Dim buffer As Variant

        buffer = MSComm1.Input

        Debug.Print "接收-" & StrConv(buffer,vbUnicode)

        'showdate txtterm,(StrConv(buffer,vbUnicode))

        Case comEvSend

        Case comEvCTS

        evmsg$="被檢測(cè)的CTS改變"

        Case comEvDSR

        evmsg$="被檢測(cè)的DSR改變"

        Case comEvCD

        evmsg$="被檢測(cè)的CD改變"

        Case comEvRing

        evmsg$="電話鈴響起"

        Case comEvEOF

        evmsg$="被檢測(cè)的文件結(jié)尾"

        Case comBreak

        ermsg$="收到中斷"

        Case comCDTO

        ermsg$="運(yùn)輸檢測(cè)超時(shí)"

        Case comCTSTO

        ermsg$="CTS超時(shí)"

        Case comDCB

        ermsg$="檢索DCB錯(cuò)誤"

        Case comDSRTO

        ermsg$="DSR超時(shí)"

        Case comFrame

        ermsg$="幀錯(cuò)誤"

        Case comOverrun

        ermsg$="超限錯(cuò)誤"

        Case comRxOver

        ermsg$="接收緩沖區(qū)溢出"

        Case comRxParity

        ermsg$="奇偶校驗(yàn)錯(cuò)"

        Case comTxFull

        ermsg$="傳送緩沖區(qū)滿"

        Case Else

        ermsg$="未知的錯(cuò)誤或事件"

        End Select

        End Sub

        Private Sub starttiming()

        '調(diào)用此函數(shù)啟動(dòng)連接時(shí)間計(jì)時(shí)器

        starttime=Now

        Timer1.Enabled=True

        End Sub

        Private Sub stoptiming()

        '調(diào)用此函數(shù)停止計(jì)時(shí)

        Timer1.Enabled = False

        End Sub

        程序執(zhí)行時(shí)的界面如下圖:

        (作者單位:西安歐亞學(xué)院信息工程學(xué)院)

        猜你喜歡
        計(jì)時(shí)器電話號(hào)碼控件
        松鼠的計(jì)時(shí)器
        歡歡家的電話號(hào)碼
        超高精度計(jì)時(shí)器——原子鐘
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        不能忘記的電話號(hào)碼
        猜電話號(hào)碼
        抗繆勒氏管激素:卵巢功能的計(jì)時(shí)器!
        媽媽寶寶(2017年2期)2017-02-21 01:21:22
        豎向固定電火花打點(diǎn)計(jì)時(shí)器的技巧
        就這樣玩會(huì)VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        小熊家的電話號(hào)碼
        少妇高潮紧爽免费观看| 精品三级国产一区二区三| 妺妺窝人体色www在线| 色婷婷一区二区三区四| 日本免费一区二区三区影院 | 中文字幕一区二区在线看| 亚州中文字幕乱码中文字幕| 插上翅膀插上科学的翅膀飞| 国产真人性做爰久久网站| 久久国产亚洲高清观看5388| 国产三级三级精品久久| 精品一区二区三区四区国产| 在线观看免费人成视频| 人人做人人妻人人精| 久久亚洲精彩无码天堂| 粉嫩人妻91精品视色在线看| 人妻丰满熟妇无码区免费| 国产一在线精品一区在线观看| 免费人人av看| 亚洲一区二区三区18| 国产成人精品优优av| 久久久久无码精品国产app| 国产主播福利一区二区| 国产精品一区二区三区黄片视频| 91在线视频在线视频| 女人色熟女乱| 亚洲AV成人无码久久精品老人| 亚洲福利第一页在线观看| 一区二区三区国产在线视频| 国产精品成人观看视频| 国产精品1区2区| 国产亚洲精品在线播放| 一区二区三区精品少妇| 国产亚洲精品资源在线26u| 9久9久女女热精品视频免费观看 | 色偷偷888欧美精品久久久| 无码不卡av东京热毛片| 国产AV国片精品有毛| 日本一级三级在线观看| 五月天中文字幕mv在线| 日韩在线免费|