



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、MSm控件正在中文Windows下的通信題目成績與處置懲獎要收(1)摘要VB5.0/6.0的S通信控件供應(yīng)了一系列尺度通信命令的接心,它答應(yīng)創(chuàng)立串心毗鄰,但正在真踐通信硬件謀劃歷程中,S控件并沒有是像念像中那樣好謙戰(zhàn)簡單獨(dú)霸,出格是正在中文inds下通信時(shí)更會呈現(xiàn)題目成績。本文便S控件正在真踐利用中年夜要呈現(xiàn)的題目成績和編程本收停頓探供。閉鍵詞s控件串心通信處置懲獎1.S控件的根底實(shí)際一樣平常講去,策畫機(jī)皆有一個(gè)或多個(gè)串止端心,它們順次為1、2、.。那些串心借供應(yīng)了內(nèi)部裝備與P停頓數(shù)據(jù)傳輸戰(zhàn)通信的通講,那些串心正在PU戰(zhàn)中設(shè)之間充任說明器的足色。當(dāng)字符數(shù)據(jù)從PU收支給中設(shè)時(shí),那些字符數(shù)據(jù)將被轉(zhuǎn)
2、換成串止比特流數(shù)據(jù);當(dāng)汲與數(shù)據(jù)時(shí),比特流數(shù)據(jù)被轉(zhuǎn)換為字符數(shù)據(jù)傳達(dá)給PU。再進(jìn)一步講,正在獨(dú)霸系統(tǒng)圓里,inds用通信驅(qū)動步伐(.DRV)挪用API函數(shù)收支戰(zhàn)汲與數(shù)據(jù)。當(dāng)用通信控件或聲明挪用API函數(shù)時(shí),它們由.DRV說明并傳達(dá)給裝備驅(qū)動步伐。做為一個(gè)VB步伐員,要編寫通信步伐,只需曉得通信控件供應(yīng)應(yīng)inds通信API函數(shù)的接心便可,換句話講,只需設(shè)定戰(zhàn)監(jiān)視通信控件的屬性戰(zhàn)變亂便可。2.利用S控件停頓數(shù)據(jù)的汲與戰(zhàn)收支弄清楚以上根底屬性戰(zhàn)變亂后便可以開端編寫通信步伐了:正在VB5.0/6.0中新建一個(gè)工程文件,增減irsftntrl5.0組件,正在窗體Fr1中參減and命令按鈕并與名為dTest,
3、S控件與名為S1,寫進(jìn)以下代碼:PrivateSubdTest_lik()S1.Prt=1設(shè)定1心IfS1.Prtpen=FalseThenS1.Settings=9600,N,8,19600波特率,無校驗(yàn),8位數(shù)據(jù)位,1位制止位S1.Prtpen=True翻開串心EndIfS1.utBufferunt=0渾空收支緩沖區(qū)S1.InBufferunt=0渾空汲與緩沖區(qū)收支字符數(shù)據(jù),留意必需用回車符(vbr)完畢S1.utput=Thisisagdbk!vbr撥挨德律風(fēng)號碼或收支AT命令S1.utput=ATDT0294563622vbr收支字符數(shù)組數(shù)據(jù),留意ByteArray必需事前定義賦值Di
4、ByteArrayasbyte()定義靜態(tài)數(shù)組ReDiByteArray(1)重定義數(shù)組大小ByteArray(0)=0ByteArray(1)=1S1.utput=ByteArray收支字符數(shù)組數(shù)據(jù)EndSubPrivateSubS1_n()SeletaseS1.EventaseEvReEive汲與字符數(shù)據(jù)DiBufferAsVariantS1.InputLen=0當(dāng)Inputde屬性值為0文本形式時(shí),變量中露String型數(shù)據(jù)。當(dāng)Inputde屬性值為1兩進(jìn)制形式時(shí),變量中露Byte型數(shù)組數(shù)據(jù)。S1.Inputde=InputdeBinaryBuffer=S1.Input汲與通信題目成績與
5、辦理要收3.1汲與的數(shù)據(jù)少于收支的數(shù)據(jù)假設(shè)經(jīng)由過程S控件一次性傳支較多的兩進(jìn)制數(shù)據(jù),那末,很年夜要支到的數(shù)據(jù)沒有敷。例如正在設(shè)置為2400bps傳輸率的狀況下,一次性可以傳輸2048個(gè)字符數(shù)據(jù),那末正在年夜年夜皆狀況下一次只能支到1200個(gè)字符左右,那是因?yàn)樾掳娴腟32.X中存正在一個(gè)影響傳輸兩進(jìn)制數(shù)據(jù)的Bug。32位indsAPI函數(shù)利用了幾個(gè)用TIEUTS構(gòu)制暗示的限時(shí)變量,riteTtalTieutnstant即是其中的一個(gè),它被inds內(nèi)部設(shè)定為5000即5秒,那個(gè)常量決議了正在通信驅(qū)動步伐制止傳輸之前消耗正在收支緩沖區(qū)中數(shù)據(jù)的工夫的黑黑。5秒鐘意味著通信速度為1200bps狀況下僅能
6、收支600個(gè)字符,2400bps狀況下僅能收支1200個(gè)左右的字符。終究結(jié)果上,正在一個(gè)緩沖區(qū)內(nèi)一次性收支更多的數(shù)據(jù)黑黑常年夜要的。VB5.0/6.0版本的S控件有一個(gè)新刪的緊張的屬性稱為ID,ID指的是當(dāng)串心被翻開時(shí),被API所挪用的串心句柄或標(biāo)識表記標(biāo)幟,那也意味著能利用API接心函數(shù)去建正那個(gè)常量。每次串心封閉后,inds會主動將之光復(fù)為5000,所以,每次翻開串心后需要從頭設(shè)定。以下是API聲明朝碼:TypeTIEUTSReadIntervalTieutAsLngReadTtalTieutultiplierAsLngReadTtalTieutnstantAsLngriteTtalTie
7、utultiplierAsLngriteTtalTieutnstantAsLngEndTypeDelareFuntinSetTieutsLibKernel32(ByValhFileAsLng,_lpTieutsAsTIEUTS)AsLngDelareFuntinGetTieutsLibKernel32(ByValhFileAsLng,_lpTieutsAsTIEUTS)AsLngDitieutsAsTIEUTSDiRetAsLngIf1.Prtpen=FalseThen1.Prtpen=TrueEndIf翻開串心后從頭設(shè)定串心句柄Ret=GetTieuts(1.ID,tieuts)Setsed
8、efaulttieutstieuts.ReadIntervalTieut=1tieuts.ReadTtalTieutultiplier=1tieuts.ReadTtalTieutnstant=1tieuts.riteTtalTieutultiplier=1tieuts.riteTtalTieutnstant=(1.utBufferSizeVal(1.Settings)*10000+1000Ret=SetTieuts(1.ID,tieuts)3.2如何收支年夜于128的字符數(shù)據(jù)正在通信步伐中,以單字符要收逐一收支數(shù)據(jù)時(shí),每個(gè)數(shù)據(jù)范疇為0-255即十六進(jìn)制的00-FF。正在單字符版本的英文inds
9、或DS版的BASI步伐中,只需要將響應(yīng)的數(shù)據(jù)轉(zhuǎn)換成響應(yīng)的字符收支到通信端心便可。但正在中文inds下卻止欠亨,假定正在中文inds下運(yùn)轉(zhuǎn)以下步伐:DiiasIntegerFri=0T255S1.utput=hr(i)Nexti渴視正在汲與端獲得預(yù)期的0-255之間的數(shù)據(jù),成果倒是:前129個(gè)數(shù)據(jù)汲與準(zhǔn)確,為0-128,背里127個(gè)數(shù)據(jù)為126個(gè)0戰(zhàn)一個(gè)255。形成那種成果的去由原果正在于中文inds利用的是單字節(jié)字符散(DBS)系統(tǒng)。DBS系統(tǒng)利用0-128之間的數(shù)字暗示ASII字符,年夜于128的數(shù)字僅做為前導(dǎo)字符,它只是暗示是一個(gè)非推丁語系的字符,而其真沒有代暗示真意義。上述步伐正在挪用H
10、R()函數(shù)時(shí)用到了DBS字符散,果而收死了此類缺點(diǎn)。那末,如何收支年夜于128的數(shù)據(jù)呢?謎底是利用字節(jié)數(shù)組,將以上步伐改成:DiyData(255)AsByteFri=0T255yData(i)=iNextiS1.utput=yDataDDEventsLpUntilS1.utBufferunt=0汲與歷程如何收支中翰朱符串VB5.0/6.0中可以直接把中翰朱符同等于英翰朱符收支,如:S1.utput=如今收支中文數(shù)據(jù)!,但那種要收收支的中文數(shù)據(jù)沒有克沒有及太少,收支緩沖區(qū)戰(zhàn)汲與緩沖區(qū)的大小需設(shè)定為中翰朱符的兩倍以上,并且收支與汲與系統(tǒng)所處的獨(dú)霸系統(tǒng)版本最好要齊整,沒有然會呈現(xiàn)汲與或收支緩沖區(qū)溢
11、出之類的缺點(diǎn)。那種要收可用于一樣平常要供沒有太下的場所。除上述要收中,借可以采納直接要收收支中翰朱符串。正在收支端將漢字或字符轉(zhuǎn)換為機(jī)器內(nèi)碼或區(qū)位碼數(shù)據(jù)數(shù)組,然后將轉(zhuǎn)換后的數(shù)據(jù)收支到串心,正在汲與端汲與到數(shù)據(jù)后,根據(jù)相反的順次將獲得的數(shù)據(jù)轉(zhuǎn)換為響應(yīng)的漢字或字符。正在轉(zhuǎn)換歷程中,要用到位運(yùn)算,如獲得漢字的內(nèi)碼后需要將下字節(jié)戰(zhàn)低字節(jié)分開,而VB5.0/6.0中并出有供應(yīng)此類函數(shù),以下是供整數(shù)下、低字節(jié)的函數(shù)。PubliFuntinHiByte(aAsInteger)DibAsIntegerb=aAndHFF00b=b/256Ifb0Thenb=b+256HiByte=bEndFuntinPubli
12、FuntinLByte(aAsInteger)DibAsIntegerb=aAndHFFLByte=bEndFuntin3.4如何正在通信歷程中停頓延時(shí)正在某些通信歷程中,經(jīng)常需要正在收支完一組數(shù)據(jù)后停頓一段延時(shí),以等待對圓處置懲獎上組數(shù)據(jù),以下是延時(shí)函數(shù)代碼。PubliSubDelay(PauseTieAsSingle)DiStartStart=Tier設(shè)定開端工夫DhileTierStart+PauseTieDEventsLpEndSub4.完畢語跟著策畫機(jī)利用范疇的沒有竭擴(kuò)大,策畫機(jī)之間的少途通信譽(yù)得也越去越廣泛。做為RAD開收東西代表的VisualBasi一樣供應(yīng)了一系列尺度通信命令的接心,它答應(yīng)創(chuàng)立串心毗鄰,可以毗鄰到其他通信裝備如de、借可以收支命令、停頓數(shù)據(jù)交流和監(jiān)視戰(zhàn)響應(yīng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東省濰坊市壽光重點(diǎn)中學(xué)2024-2025學(xué)年初三中考適應(yīng)性模擬押題測試(一)生物試題含解析
- 江蘇省金陵中學(xué)2025屆高三三輪復(fù)習(xí)系列七出神入化7物理試題含解析
- 氣象科技研發(fā)與應(yīng)用合同2025
- 西藏林芝地區(qū)察隅縣2025年三年級數(shù)學(xué)第二學(xué)期期末教學(xué)質(zhì)量檢測模擬試題含解析
- 上海市寶山區(qū)2024-2025學(xué)年初三第二次中考模擬統(tǒng)一考試生物試題含解析
- 山東省棗莊嶧城區(qū)六校聯(lián)考2024-2025學(xué)年初三第二學(xué)期期末質(zhì)量抽測化學(xué)試題含解析
- 智慧農(nóng)業(yè)技術(shù)創(chuàng)新與推廣策略
- 戰(zhàn)略合作保密合同書:機(jī)密信息篇
- 零食銷售用工合同
- 混凝土采購合同范本
- 邊緣計(jì)算與5G融合技術(shù)研究-全面剖析
- 8.1薪火相傳的傳統(tǒng)美德 同步課件 -2024-2025學(xué)年統(tǒng)編版道德與法治七年級下冊
- 飛機(jī)的縱向靜穩(wěn)定性飛行原理課件
- 電子化采購招投標(biāo)平臺系統(tǒng)建設(shè)項(xiàng)目解決方案
- 磁分離技術(shù)在天然氣管道黑粉處理中應(yīng)用的研究與效果分析
- 城市園林綠化養(yǎng)護(hù)管理服務(wù)投標(biāo)方案(技術(shù)方案)
- 2025年廣東省深圳市福田區(qū)5校中考一模歷史試題(原卷版+解析版)
- 肺結(jié)核宣教課件
- 中國新聞事業(yè)史知到課后答案智慧樹章節(jié)測試答案2025年春山東大學(xué)
- 事故隱患內(nèi)部舉報(bào)獎勵(lì)制度
- 2025年靜力學(xué)測試題及答案
評論
0/150
提交評論