![VB中-MSComm控件使用詳解_第1頁(yè)](http://file4.renrendoc.com/view/070f3aa967952b9aa3711b33db48dd46/070f3aa967952b9aa3711b33db48dd461.gif)
![VB中-MSComm控件使用詳解_第2頁(yè)](http://file4.renrendoc.com/view/070f3aa967952b9aa3711b33db48dd46/070f3aa967952b9aa3711b33db48dd462.gif)
![VB中-MSComm控件使用詳解_第3頁(yè)](http://file4.renrendoc.com/view/070f3aa967952b9aa3711b33db48dd46/070f3aa967952b9aa3711b33db48dd463.gif)
![VB中-MSComm控件使用詳解_第4頁(yè)](http://file4.renrendoc.com/view/070f3aa967952b9aa3711b33db48dd46/070f3aa967952b9aa3711b33db48dd464.gif)
![VB中-MSComm控件使用詳解_第5頁(yè)](http://file4.renrendoc.com/view/070f3aa967952b9aa3711b33db48dd46/070f3aa967952b9aa3711b33db48dd465.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VB中MSComm控件使用詳解VB中MSComm控件使用詳解MSComm控件通過串行瑞口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通訊功能。MSComm控件在串口編程時(shí)非常方便,程序員不必去花時(shí)間去了解較為復(fù)雜的API函數(shù),而且在VC、VB、Delphi等語(yǔ)言中均可使用。MicrosoftCommunicationsControl(以下簡(jiǎn)稱MSComm)是Microsoft公司提供的簡(jiǎn)化Windows下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法。具體的來說,它提供了兩種處理通信問題的方法:一是事件驅(qū)動(dòng)(Event-driven)方法,一是査詢法。MSComm控件
2、兩種處理通訊的方式MSComm控件提供下列兩種處理通訊的方式:事件驅(qū)動(dòng)方式和査詢方式。1.1事件驅(qū)動(dòng)方式事件驅(qū)動(dòng)通訊是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時(shí)需要得到通知,例如,在串口接收緩沖區(qū)中有字符,或者CarrierDetect(CD)或RequestToSend(RTS)線上一個(gè)字符到達(dá)或一個(gè)變化發(fā)生時(shí)。在這些情況下,可以利用MSComm控件的OnComm事件捕獲并處理這些通訊事件。OnComm事件還可以檢査和處理通訊錯(cuò)誤。所有通訊事件和通訊錯(cuò)誤的列表,參閱CommEvent屬性。在編程過程中,就可以在0nComm事件處理函數(shù)中加入自己的處理代碼。這種方法的
3、優(yōu)點(diǎn)是程序響應(yīng)及時(shí),可靠性髙。每個(gè)MSComm控件對(duì)應(yīng)著一個(gè)串行端口。如果應(yīng)用程序需要訪問多個(gè)串行端口,必須使用多個(gè)MSComm控件。1.2査詢方式査詢方式實(shí)質(zhì)上還是事件驅(qū)動(dòng),但在有些情況下,這種方式顯得更為便捷。在程序的每個(gè)關(guān)鍵功能之后,可以通過檢査CommEvent屬性的值來査詢事件和錯(cuò)誤。如果應(yīng)用程序較小,并且是自保持的,這種方法可能是更可取的。例如,如果寫一個(gè)簡(jiǎn)單的電話撥號(hào)程序,則沒有必要對(duì)每接收一個(gè)字符都產(chǎn)生事件,因?yàn)槲ㄒ坏却邮盏淖址钦{(diào)制解調(diào)器的確定“響應(yīng)。MSComm控件的常用屬性MSComm控件有很多重要的屬性,但首先必須熟悉兒個(gè)屬性。CommPort設(shè)置并返回通訊端口號(hào)。S
4、ettings以字符串的形式設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位。PortOpen設(shè)置并返回通訊端口的狀態(tài)。也可以打開和關(guān)閉端口。Input從接收緩沖區(qū)返回和刪除字符。Output向傳輸緩沖區(qū)寫一個(gè)字符串。下而分別描述:CommPort屬性設(shè)置并返回通訊端口號(hào)。語(yǔ)法object.CommPort=valueCommPort屬性語(yǔ)法包括下列部分:部分描述object對(duì)彖表達(dá)式,其值是應(yīng)用于列表中的對(duì)象。value一整型值,說明端口號(hào)。說明在設(shè)計(jì)時(shí),value可以設(shè)置成從1到16的任何數(shù)(缺省值為1)。但是如果用PortOpen屬性打開一個(gè)并不存在的端口時(shí),MSComm控件會(huì)產(chǎn)生錯(cuò)誤68(設(shè)
5、備無效)。警告必須在打開端口之前設(shè)置CommPort屬性。數(shù)據(jù)類型IntegerSettings屬性設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位參數(shù)。語(yǔ)法object.Settings=valueSettings屬性語(yǔ)法包括下列部分:部分描述object對(duì)象表達(dá)式,其值是應(yīng)用于列表中的對(duì)象。value字符串表達(dá)式,說明通訊端口的設(shè)宜值,如下所述。說明當(dāng)端口打開時(shí),如果value非法,則MSComm控件產(chǎn)生錯(cuò)誤380(非法屬性值。Value由四個(gè)設(shè)置值組成,有如下的格式:BBBBZPZDZSBBBB為波特率,P為奇偶校驗(yàn),D為數(shù)據(jù)位數(shù),S為停止位數(shù)。value的缺省值是:9600,N,8,1下表列
6、出合法的波特率:設(shè)置值110300600120024009600(缺?。?440019200288003840056000128000256000下表說明合法的奇偶校驗(yàn)值。設(shè)置值描述E偶數(shù)(Even)M標(biāo)記(Mark)N缺省(Default)None0奇數(shù)(Odd)S空格(Space)下表列出合法的數(shù)據(jù)位值。設(shè)置值4567(缺省)下表列出合法的停止位值。設(shè)置值(缺省)1.52數(shù)據(jù)類型StringSettings示例下而的例子設(shè)置控件端口通訊,波特率9600,無奇偶校驗(yàn)檢查,8個(gè)數(shù)據(jù)位,1個(gè)停止位:MSComml.Settings=9600,N,8,lPortOpen屬性設(shè)宜并返回通訊端口的狀態(tài)
7、(開或關(guān))。在設(shè)計(jì)時(shí)無效。語(yǔ)法object.PortOpen=valuePortOpen屬性語(yǔ)法包括下列部分:部分描述object對(duì)彖表達(dá)式,其值是應(yīng)用于列表中的對(duì)象。value布爾表達(dá)式,說明通訊端口的狀態(tài)。設(shè)置值value設(shè)置值是:設(shè)置值描述True端口開False端口關(guān)說明設(shè)置PortOpen屬性為True打開端口。設(shè)置為False關(guān)閉端口并淸除接收和傳輸緩沖區(qū)。當(dāng)應(yīng)用程序終止時(shí),MSComm控件自動(dòng)關(guān)閉串行端口。在打開端口之前,確定CommPort屬性設(shè)置為一個(gè)介法的端口號(hào)。如果CommPort屬性設(shè)宜為一個(gè)非法的端口號(hào),則當(dāng)打開該端口時(shí),MSComm控件產(chǎn)生錯(cuò)誤68(設(shè)備無效)。另外
8、,串行端口設(shè)備必須支持Settings屬性當(dāng)前的設(shè)置值。如果Settings屬性包含硬件不支持的通訊設(shè)置值,那么硬件可能不會(huì)正常工作。如果在端口打開之前,DTREnable或RTSEnable屬性設(shè)置為True,當(dāng)關(guān)閉端口時(shí),該屬性設(shè)置為False.否則,DTR和RTS線保持其先前的狀態(tài)。數(shù)據(jù)類型BooleanPortOpen屬性示例下例以波特率9600打開1號(hào)通訊端口,沒有奇偶檢査,8個(gè)數(shù)據(jù)位,1個(gè)停止位。MSComml.Settings=”9600,n,8,1”MSComm1.CommPort=1MSComml.PortOpen=TrueInput屬性返回并刪除接收緩沖區(qū)中的數(shù)據(jù)流。該屬性
9、在設(shè)計(jì)時(shí)無效,在運(yùn)行時(shí)為只讀。語(yǔ)法object.InputInput屬性語(yǔ)法包括下列部分:部分描述object對(duì)彖表達(dá)式,其值是應(yīng)用于列表中的對(duì)象。說明InputLen屬性確定被Input屬性讀取的字符數(shù)。設(shè)宜InputLen為0,則Input屬性讀取緩沖區(qū)中全部的內(nèi)容。InputMode屬性確定用Input屬性讀取的數(shù)據(jù)類型。如果設(shè)置InputMode為comInputModeText,Input屬性通過一個(gè)Variant返回文本數(shù)據(jù)。如果設(shè)置InputMode為comlnputModeBinary,Input屬性通過一個(gè)Variant.返回一二進(jìn)制數(shù)據(jù)的數(shù)組。數(shù)據(jù)類型VariantInpu
10、t屬性示例該例子說明如何從接收緩沖區(qū)讀取數(shù)據(jù)。PrivateSubCommandl_Click()DimInStringasString1讀取所有可用數(shù)據(jù)。MSComml.InputLen=0檢査數(shù)據(jù)。IfMSComml.InBufferCountThen1Readdata.InString=MSComml.InputEndIfEndSubOutput屬性往傳輸緩沖區(qū)寫數(shù)據(jù)流。該屬性在設(shè)計(jì)時(shí)無效,在運(yùn)行時(shí)為只讀。語(yǔ)法object.Output=valueOutput屬性語(yǔ)法包括下列部分:部分描述object對(duì)彖表達(dá)式,其值是應(yīng)用于列表中的對(duì)象。value要寫到傳輸緩沖區(qū)中的一個(gè)字符串。說明Ou
11、tput屬性可以傳輸文本數(shù)據(jù)或二進(jìn)制數(shù)據(jù)。用Output屬性傳輸文本數(shù)據(jù),必須左義一個(gè)包含一個(gè)字符串的Variant.,發(fā)送二進(jìn)制數(shù)據(jù),必須傳遞一個(gè)包含字節(jié)數(shù)組的Variant到Output屬性。正常情況下,如果發(fā)送一個(gè)ANSI字符串到應(yīng)用程序,可以以文本數(shù)據(jù)的形式發(fā)送。如果發(fā)送包含嵌入控制字符、Null字符等等的數(shù)據(jù),要以二進(jìn)制形式發(fā)送。數(shù)據(jù)類型VariantOutput屬性示例下而的例子說明如何將用戶鍵入的每一個(gè)字符送到串行端口:PrivateSubForm_KeyPress(KeyAsciiAsInteger)DimBufferasVariant設(shè)置并打開窗口MSComml.CommPo
12、rt=1MSComml.PortOpen=TrueBuffer=Chr$(KeyAscii)MSComml.Output=BufferEndSubOnComm事件無論何時(shí)當(dāng)CommEvent屬性的值變化時(shí),就產(chǎn)生OnComm事件,標(biāo)志發(fā)生了一個(gè)通訊事件或一個(gè)錯(cuò)誤。語(yǔ)法PrivateSubobject_OnComm()OnComm事件語(yǔ)法包括下列部分:部分描述object對(duì)象表達(dá)式,其值是應(yīng)用于列表中的對(duì)象。說明CommEvent屬性包含實(shí)際錯(cuò)誤或產(chǎn)生OnComm事件的數(shù)碼。注意,設(shè)置Rthreshold或Sthreshold屬性為0,分別使捕獲comEvReceive和comEvSend事件無
13、效。OnComm事件示例下例說明如何處理通訊錯(cuò)誤和事件。可以在相關(guān)的Case語(yǔ)句之后插入代碼來處理特定的錯(cuò)誤或事件。PrivateSubMSComm_OnComm()SelectCaseMSComml.CommEventHandleeacheventorerrorbyplacingcodebeloweachcasestatement錯(cuò)誤收到BreaksCD(RLSD)超時(shí)。CTSTimeout01DSRTimeouto1FramingError數(shù)據(jù)丟失。接收緩沖區(qū)溢岀。Parity錯(cuò)誤。傳輸緩沖區(qū)已滿。獲取DCB時(shí)意外錯(cuò)誤CasecomEventBreakCasecomEventCDTOCas
14、ecomEventCTSTOCasecomEventDSRTOCasecomEventFrameCasecomEventOverrunCasecomEventRxOverCasecomEventRxParityCasecomEventTxFullCasecomEvCDCD線狀態(tài)變化。CasecomEventDCBCasecomEvCTSCasecomEvDSRCasecomEvRing1CTS線狀態(tài)變化。DSR線狀態(tài)變化。RingIndicator變化。CasecomEvReceive收到RThreshold#ofchars.CasecomEvSend傳輸緩沖區(qū)有Sthreshold個(gè)字符Ca
15、secomEvEof輸入數(shù)據(jù)流中發(fā)現(xiàn)EOF字符EndSelectEndSubCommEvent屬性返回最近的通訊事件或錯(cuò)誤。該屬性在設(shè)計(jì)時(shí)無效,在運(yùn)行時(shí)為只讀。語(yǔ)法object.CommEventCommEvent屬性語(yǔ)法包括下列部分:部分描述object對(duì)象表達(dá)式,其值是應(yīng)用于列表中的對(duì)象。說明只要有通訊錯(cuò)誤或事件發(fā)生時(shí)都會(huì)產(chǎn)生OnComm事件,CommEvent屬性存有該錯(cuò)誤或事件的數(shù)值代碼。要確定引發(fā)OnComm事件的確切的錯(cuò)誤或事件,請(qǐng)參閱CommEvent屬性。CommEvent屬性返回下列值之一來表示不同的通訊錯(cuò)誤或事件。這些常數(shù)可以在該控件的對(duì)象庫(kù)中找到。通訊錯(cuò)誤包括下列設(shè)置值:
16、常數(shù)值描述comEventBreak1001接收到一個(gè)中斷信號(hào)。comEventCTSTO1002ClearToSend超時(shí)。在系統(tǒng)規(guī)定時(shí)間內(nèi)傳輸一個(gè)字符時(shí),ClearToSend線為低電平。comEventDSRTO1003DataSetReady超時(shí)。在系統(tǒng)規(guī)左時(shí)間內(nèi)傳輸一個(gè)字符時(shí),DataSetReady線為低電平。comEventFrame1004幀錯(cuò)誤。換件檢測(cè)到一幀錯(cuò)誤。comEventOverrun1006瑞口超速。沒有在下一個(gè)字符到達(dá)之前從碩件讀取字符,該字符丟失。comEventCDTO1007載波檢測(cè)超時(shí)。在系統(tǒng)規(guī)立時(shí)間內(nèi)傳輸一個(gè)字符時(shí),CarrierDetect線為低電平
17、。CarrierDetect也稱為ReceiveLineSignalDetect(RLSD)。comEventRxOver1008接受緩沖區(qū)溢出。接收緩沖區(qū)沒有空間。comEventRxParity1009奇偶校驗(yàn)。硬件檢測(cè)到奇偶校驗(yàn)錯(cuò)誤comEventTxFull1010傳輸緩沖區(qū)已滿。傳輸字符時(shí)傳輸緩沖區(qū)已滿comEventDCB1011檢索端口的設(shè)備控制塊(DCB)時(shí)的意外錯(cuò)誤通訊事件包括下列設(shè)置值:常數(shù)值描述comEvSend1在傳輸緩沖區(qū)中有比Sthreshold數(shù)少的字符。comEvReceive2收到Rthreshold個(gè)字符。該事件將持續(xù)產(chǎn)生直到用Input屬性從接收緩沖區(qū)中刪
18、除數(shù)據(jù)。comEvCTS3ClearToSend線的狀態(tài)發(fā)生變化。comEvDSR4DataSetReady線的狀態(tài)發(fā)生變化。該事件只在DST從1變到0時(shí)才發(fā)生。comEvCD5CarrierDetect線的狀態(tài)發(fā)生變化。comEvRing6檢測(cè)到振鈴信號(hào)。一些UART(通用異步接收一傳輸)可能不支持該事件。comEvEOF7收到文件結(jié)束(ASCII字符為26)字符。數(shù)據(jù)類型IntegerMSComm控件示例下而這個(gè)簡(jiǎn)單的例子演示了用調(diào)制解調(diào)器進(jìn)行基本的串行通訊:PrivateSubForm_Load()保存輸入子串的緩沖區(qū)DimInstringAsString使用COMloMSComm1.C
19、ommPort=19600波特,無奇偶校驗(yàn),8位數(shù)據(jù),一個(gè)停止位。MSComml.Settings=9600,8,1當(dāng)輸入占用時(shí),告訴控件讀入整個(gè)緩沖區(qū)。MSComml.InputLen=0打開端口。MSComml.PortOpen=True將attention命令送到調(diào)制解調(diào)器。Chr$函數(shù):返回String,其中包含有與指定的字符代碼相關(guān)的字符MSComml.Output=ATVIQO&Chr$(13)確保調(diào)制解調(diào)器以“OK“響應(yīng)。等待數(shù)據(jù)返回到串行端口。DoDoEventsBuffer$=Buffer$&MSComml.InputLoopUntilInStr(Buffer$,OK&vbC
20、RLF)從串行端口讀OK響應(yīng)。關(guān)閉串行端口。MSComml.PortOpen=FalseEndSub注意MSComm控件可以采用輪詢或事件驅(qū)動(dòng)的方法從端口獲取數(shù)據(jù)。這個(gè)簡(jiǎn)單的例子使用了倫詢方法。實(shí)例1:計(jì)算機(jī)撥號(hào)在一些實(shí)際應(yīng)用中經(jīng)常需要使用計(jì)算機(jī)撥號(hào)。下而這個(gè)例子利用MSComm控件操作Modem進(jìn)行撥號(hào),實(shí)現(xiàn)串口通信。實(shí)現(xiàn)步驟:建窗體添加一個(gè)MSComm控件,用來建立與串口的連接:添加一個(gè)Text控件,Name屬性為Txttel,用來輸入電話號(hào)碼;添加3個(gè)CommandButton控件,Name屬性分別為DialButtonXancellButton.QuitButton,分別用來實(shí)現(xiàn)撥號(hào)、
21、中止撥號(hào)、中止程序:添加一個(gè)Label控件,用來顯示所有與撥號(hào)有關(guān)的信息。窗體見圖設(shè)置MSComm控件屬性InBufferSize=1024;zInBufferSize是指整個(gè)接收緩沖區(qū)的大小。缺省值是1024字節(jié)。Inputlen=O:InputLen屬性的缺省值是0。設(shè)宜InputLen為0時(shí),使用Input將使MSComm控件讀取接收緩沖區(qū)中全部的內(nèi)容。InputMode=0;0(缺省)數(shù)據(jù)通過Input屬性以文本形式取回。1一數(shù)據(jù)通過Input屬性以二進(jìn)制形式取回Rthreshold=2;當(dāng)接收字符后,若Rthreshold屬性設(shè)置為0(缺省值)則不產(chǎn)生OnComm事件。RTSEnab
22、le=True:當(dāng)RTSEnable設(shè)置為True,端口打開時(shí),RequestToSend線設(shè)置為高電平,端口關(guān)閉時(shí),設(shè)置為低電平。Settings=、9600,N,8,l;Sthreshold=Oa若設(shè)置Sthreshold屬性為0(缺省值),數(shù)據(jù)傳輸事件不會(huì)產(chǎn)生OnComm事件。若設(shè)置Sthreshold屬性為1,當(dāng)傳輸緩沖區(qū)完全空時(shí),MSComm控件產(chǎn)生OnComm事件。因?yàn)槊恳慌_(tái)計(jì)算機(jī)的串口使用狀態(tài)都不會(huì)一樣。為使程序具有通用性,在窗體的Load方法中首先進(jìn)行串口測(cè)試,找到第一個(gè)可用串口后再進(jìn)行設(shè)置。程序功能程序根據(jù)輸入的電話號(hào)碼進(jìn)行撥號(hào),Modem正常撥號(hào)后,提示用戶摘機(jī),準(zhǔn)備通話。
23、圖1電話撥號(hào)實(shí)例主要方法與事件代碼設(shè)置可用串口PrivateSubForm_Load()OnErrorGoToerror_openFori=1To4MSComml.CommPort=1MSComm1.PortOpen=True設(shè)置可用的第一個(gè)串口OnErrorGoTo0ExitSuberror_resume:Nexterror_open:Resumeerror_resumeEndSubPrivateSubDialButton_Click()DimNumber$,Temp$Number$=Trim$(Txttel.Text)返回Variant(String),其中包含指定字符串的拷貝,沒有前導(dǎo)空
24、白(LTrim).尾隨空白(RTrim)或前導(dǎo)和尾隨空白(Trim)。IfNumber$=ThenMsgBox請(qǐng)輸入電話號(hào)碼Txttel.SetFocusExitSubEndIfDialButton.Enabled=FalseQuitButton.Enabled=FalseDialString$=ATDT+Number$+vbCr淸除接收緩沖區(qū)MSComml.InBufferCount=0撥電話號(hào)碼MSComml.Output=DialString$Lblmessage.Caption=正在撥號(hào)碼一+Numbe$DialButton.Enabled=TrueQuitButton.Enabled
25、=TrueEndSubPrivateSubMSComml_OnComm()SelectCaseMSComml.CommEventCasecomEvReceive讀取串口數(shù)據(jù)COMBUF=COMBUF+MSComml.InputIc=InStr(lzCOMBUF,、OIC)IfIc=0ThenExitSubModem已正常撥號(hào),返回OKLblmessage.Caption=請(qǐng)您摘下電話機(jī),準(zhǔn)備通話CasecomEvSendEndSelectEndSubPrivateSubCancelButton_Click()斷開與調(diào)制解調(diào)器的連接MSComml.Output=、ATH+vbCrEndSub實(shí)例
26、2:實(shí)現(xiàn)來電顯示在一些實(shí)際應(yīng)用中,需要顯示并保存來電號(hào)碼,并根據(jù)電話號(hào)碼顯示相應(yīng)資料,比如小區(qū)物業(yè)管理和110報(bào)警等系統(tǒng)。實(shí)現(xiàn)步驟:創(chuàng)建窗體添加一個(gè)MSComm控件,用來建立與串口的連接;添加4個(gè)Option控件,用來確定使用的串口號(hào):添加4個(gè)Label控件,用來顯示來電號(hào)碼及日期時(shí)間;添加一個(gè)ProgressBar控件,用來顯示電話振鈴次數(shù):為方便調(diào)試程序,添加一個(gè)Text控件Text5,用來顯示Modem傳來的所有信息。窗體見圖2。圖2來電顯示窗體設(shè)置MSComm控件屬性InBufferSize=1024;Inputlen=O:InputMode=0:Rthreshold=l:RTSEna
27、ble=True:Settings=9600zNz8zln;Sthreshold=0o程序功能程序首先初始化Modem,然后等待來電。當(dāng)有來電時(shí),MSComm產(chǎn)生OnComm事件,Modem送岀的信息格式為DATE=月日回車換行TIME=時(shí)分回車換行NMBR=電話號(hào)碼回車換行。在OnComm事件處理程序中對(duì)讀入信息進(jìn)行截取,截取電話號(hào)碼后,以該電話號(hào)碼為關(guān)鍵字,査詢并顯示數(shù)據(jù)庫(kù)中有關(guān)信息。主要方法與事件代碼通用聲明部分ConstDEBFLG=1PublicCOMXZBEEPNO,HANGUP,PNLOCAsIntegerPublicCOMBUF,COMLINAsStringPrivateSub
28、Form_Load()檢測(cè)串行口DimI,CAsIntegerCOMX=0COMBUF=COMLIN=BEEPNO=0HANGUP=0正常運(yùn)行程序,關(guān)閉右側(cè)Text5IfDEBFLG=0ThenForml.Width=Forml.WidthText5.WidthText5.Enabled=FalseText5.Visible=FalseEndIfOnErrorGoToERROR_FORM_LOAD檢測(cè)可用串口ForC=1To4IfMSComml.PortOpenThenMSComml.PortOpen=FalseMSComml.CommPort=CIfNotMSComml.PortOpenTh
29、enMSComml.PortOpen=TrueIfMSComml.PortOpenThenMSComml.PortOpen=FalseIfCOMX=0ThenCOMX=CFORM_LOAD_1:NextCIfCOMX=0ThenEndOnErrorGoTo0Optionl(COMX一l).Value=TrueExitSubERROR_FORM_LOAD:Optionl(C1).Enabled=FalseResumeFORM_LOAD_1EndSub選擇串行口PrivateSubOptionl_Click(IndexAsInteger)COMX=Index+1CallINIT_MODEMEndS
30、ub初試化ModemPrivateSubINIT_MODEM()IfMSComml.PortOpenThenMSComml.PortOpen=FalseMSComml.CommPort=COMXIfNotMSComml.PortOpenThenMSComml.PortOpen=TrueMSComml.Output=AT#CID=1+vbCr檢査Modem命令是否完成CallCHKMODEMMSComml.Output=、ATS0=0+vbCrEndSub檢査Modem命令是否完成PrivateSubCHK_MODEM()DimTAsSingleDimLAsIntegerT=TimerDoCOMBUF=COMBUF+MSComml.InputL=InStr(lzCOMBUF,、OK)LoopUntilL0OrTimerT1IfL=0ThenLinel.Visible=TrueLine2.Visible=TrueForml.ShowMsgBoxMODEM未聯(lián)機(jī)z;vbOKOnly+v
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度教學(xué)儀器知識(shí)產(chǎn)權(quán)保護(hù)合同
- 全新轎車購(gòu)買合同范本
- 2025年度金融貸款居間風(fēng)險(xiǎn)控制合同
- 全國(guó)授權(quán)合同范本
- 養(yǎng)鵝合同范例
- 切割支撐合同范本
- 業(yè)主和裝修工長(zhǎng)合同范例
- 2025年度花卉市場(chǎng)渠道建設(shè)與拓展合同
- 自愿租賃房屋意向合同范本
- n 1賠償合同范本
- 頂管施工施工總體部署中建
- 門急診病歷書寫內(nèi)容及要求
- 2022年陜西西安亮麗電力集團(tuán)有限責(zé)任公司招聘考試試題及答案
- 一人出資一人出力合伙協(xié)議范本完整版
- 2022年北京海淀區(qū)高三一模物理試題和答案
- 施工工法的編寫與申報(bào)(完整版)
- 歇后語(yǔ)大全500條
- 中小學(xué)教師校園安全培訓(xùn)
- 2024年北京法院聘用制審判輔助人員招聘筆試參考題庫(kù)附帶答案詳解
- (高清版)DZT 0276.13-2015 巖石物理力學(xué)性質(zhì)試驗(yàn)規(guī)程 第13部分:巖石比熱試驗(yàn)
- (高清版)DZT 0017-2023 工程地質(zhì)鉆探規(guī)程
評(píng)論
0/150
提交評(píng)論