資源描述:
《使用Communications控件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、使用Communications控件Communications控件可以用來(lái)提供簡(jiǎn)單的串行端口通訊功能,也可以用來(lái)創(chuàng)建功能完備(full-featured)、事件驅(qū)動(dòng)的高級(jí)通訊工具。Communications控件Communications控件提供了一系列標(biāo)準(zhǔn)通訊命令的使用界面。使用它可以建立與串行端口的連接,通過(guò)串行端口連接到其它通訊設(shè)備(例如調(diào)制解調(diào)器),發(fā)出命令,交換數(shù)據(jù),以及監(jiān)視和響應(yīng)串行連接中發(fā)生的事件和錯(cuò)誤。用途·撥打電話號(hào)碼?!けO(jiān)視串行端口的輸入數(shù)據(jù)?!?chuàng)建功能完備的終端程序。示例應(yīng)用程序:Dialer.vbp和VBTerm.vbpDialer.vbp和VBTerm.v
2、bp示例應(yīng)用程序位于VisualBasicCD-ROM的ProgramFilesMicrosoftVisualStudioCommonSamplesvbdirectory目錄中,它們分別演示了Communications控件的簡(jiǎn)單編程技術(shù)和復(fù)雜編程技術(shù)。串行通訊的基本知識(shí)每臺(tái)計(jì)算機(jī)都提供了一個(gè)或多個(gè)串行端口。它們被依次命名為:COM1、COM2等等。在標(biāo)準(zhǔn)的PC中,鼠標(biāo)通常被連接到COM1端口。調(diào)制解調(diào)器可能連接到COM2,掃描儀被連接到COM3,等等。串行端口提供了計(jì)算機(jī)與這些外部串行設(shè)備之間的數(shù)據(jù)傳輸通道。串行端口的本質(zhì)功能是作為CPU和串行設(shè)備間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從CP
3、U經(jīng)過(guò)串行端口發(fā)送出去時(shí),字節(jié)數(shù)據(jù)被轉(zhuǎn)換為串行的位。在接收數(shù)據(jù)時(shí),串行的位將被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。要完成數(shù)據(jù)的傳輸,還需要進(jìn)一步一個(gè)解釋層。在操作系統(tǒng)一邊,Windows使用了通訊驅(qū)動(dòng)程序Comm.drv,以便使用標(biāo)準(zhǔn)的WindowsAPI函數(shù)發(fā)送和接收數(shù)據(jù)。驅(qū)動(dòng)程序通常由串行設(shè)備制造商提供,以便將其硬件與Windows連接。在使用Communications控件時(shí),實(shí)際上使用了API函數(shù),API函數(shù)將被Comm.drv解釋并傳輸給設(shè)備驅(qū)動(dòng)程序。作為程序員,只需關(guān)心如何與Windows打交道。作為VisualBasic程序員,只需要關(guān)心Communications控件提供的對(duì)Windows
4、通訊驅(qū)動(dòng)程序的API函數(shù)的接口。換句話說(shuō),只需要設(shè)置和監(jiān)視Communications控件的屬性和事件。建立串行端口連接使用Communications控件的第一步是建立與串行端口的連接。下表列出了用于建立串行端口連接的屬性:屬性描述CommPort設(shè)置或返回通訊端口號(hào)。Settings以字符串形式設(shè)置或返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位和停止位。PortOpen設(shè)置或返回通訊端口的狀態(tài)。以及打開(kāi)和關(guān)閉端口。打開(kāi)串行端口要打開(kāi)串行端口,可以使用CommPort、PortOpen和Settings屬性。例如:'打開(kāi)串行端口MSComm1.CommPort=2MSComm1.Settings="
5、9600,N,8,1"MSComm1.PortOpen=TrueCommPort屬性確定打開(kāi)哪個(gè)串行端口。假如COM2上連接有一個(gè)調(diào)制解調(diào)器,則在上面的例子中需要將值設(shè)置為2(COM2)才能連接到該調(diào)制解調(diào)器。CommPort屬性值可以設(shè)置為1到16之間的任何值(缺省值為1),然而,如果將該值設(shè)置為系統(tǒng)中并不存在的COM端口,將會(huì)產(chǎn)生錯(cuò)誤。Settings屬性可以用來(lái)指定波特率、奇偶校驗(yàn)、數(shù)據(jù)位數(shù)和停止位數(shù)。按照缺省規(guī)定,波特率被設(shè)置為9600。奇偶校驗(yàn)設(shè)置為了進(jìn)行數(shù)據(jù)校驗(yàn)。這通常是不用的,并設(shè)置為“N”。數(shù)據(jù)位數(shù)指定了代表一個(gè)數(shù)據(jù)塊的比特?cái)?shù)。停止位指出了何時(shí)接收到一個(gè)完整數(shù)據(jù)塊。在指
6、定了要打開(kāi)的端口,以及如何進(jìn)行數(shù)據(jù)通訊之后,就可以使用PortOpen屬性建立連接了。它是一個(gè)布爾值,即取值范圍為T(mén)rue或False。然而,如果端口無(wú)效,或者CommPort屬性設(shè)置有誤,或者該設(shè)備不支持指定的設(shè)置,就會(huì)產(chǎn)生錯(cuò)誤;即使沒(méi)有產(chǎn)生錯(cuò)誤,外部設(shè)備也不能正常工作。將PortOpen屬性設(shè)置為False即可關(guān)閉該端口。操作調(diào)制解調(diào)器在絕大多數(shù)情況下,使用Communications控件的目的是為應(yīng)用程序提供對(duì)調(diào)制解調(diào)器的操作。利用Communications控件,可以使用標(biāo)準(zhǔn)的Hayes兼容的命令集撥打電話號(hào)碼,或連接到另一調(diào)制解調(diào)器,并與它進(jìn)行交互操作。用CommPort、S
7、ettings和PortOpen屬性建立了串行端口連接之后,就可以使用Output屬性激活該調(diào)制解調(diào)器,并與它進(jìn)行交互操作。Output屬性用來(lái)發(fā)出命令,控制調(diào)制解調(diào)器之間的交互操作。如下所示:'激活調(diào)制解調(diào)器,并撥打電話號(hào)碼。MSComm1.Output="ATDT555-5555"&vbCr在上面的示例中,“AT”命令初始化連接,“d”進(jìn)行撥號(hào),“T”指定使用音頻(而不是脈沖)。在輸出到終端時(shí)必須指定回車(chē)符(vbCr)。在輸出字節(jié)數(shù)組時(shí),無(wú)