<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于Windows CE.NET實(shí)現(xiàn)藍(lán)牙通訊模塊的幾種方法

          基于Windows CE.NET實(shí)現(xiàn)藍(lán)牙通訊模塊的幾種方法

          作者: 時(shí)間:2010-11-29 來源:網(wǎng)絡(luò) 收藏

          1.2利用微軟工具包編寫通訊模塊
          微軟工具包是微軟公司新推出來基于.NETCompactFramework2.0的一款專門用來快速開發(fā)藍(lán)牙應(yīng)用程序的工具包,直接 在.NET平臺(tái)下直接調(diào)用其中類庫,可以快速,簡(jiǎn)單的開發(fā)一般的藍(lán)牙應(yīng)用程序。不過該工具包只能在WindowsCE5.0下使用。利用工具包可以完 成:?jiǎn)?dòng)一個(gè)藍(lán)牙服務(wù),尋找周邊藍(lán)牙設(shè)備,連接已存在的藍(lán)牙設(shè)備或者服務(wù)。工具包可以在微軟網(wǎng)站下載。
          利用此工具做兩個(gè)藍(lán)牙設(shè)備間進(jìn)行簡(jiǎn)單文本傳輸?shù)某绦虿糠执a如下:
          Server端:
          GuidserviceGuid=newGuid({81553B2B-FFOB-4415-86C9-22B799058B81});
          ServerHandlesh=btseore.CreateService(ser-viceGuid);
          NetworkStreamns=sh.AceeptConnection()StingdataToSend=Hello;
          Byte[]dataBuffer=System.Text.ASCIIEncoding.ASCII.GetBytes(dataToSend);
          ns.Write(dataBuffer,0,dataBuffer.Length);
          ns.Flush();
          ns.Close();
          Client端:
          PairedDevices=btsCore.GetPairedDevices();
          Foreach(BluetoothDevicedeviceinpairedDevices)
          {pairedDevicesListBox.Item.Add(device.deviceName);}
          GuidserviceGuid=newGuid({01550D2D-FF0D-4415-86C9-22B799058B81});
          If(pairedDevicesListBox.SelectedIndex=0);
          {BluetoothDevicedeviceToConnect=(BluetoothDevice)pairedDevices[pairedDevicesListBox.Selected];
          NetworkStreamns=btsCore.Connect(deviceTo-Connect,serviceGuid);
          byte[]buffer=newbyte[2000]
          ns.Read(buffer,0,50);
          char[]bufferAsChars=System.Text.ASCII.GetChars(buffer)
          System.Strings=System.Text.Encoding.ASCIIGetString(buffer,0,buffer,length);
          Message.Show(s)
          ns.Close();}
          1.3利用OpenNETCF編寫藍(lán)牙通訊模塊
          OpenNETCF是一個(gè)可以有效提高WindowsMobile開發(fā)效率的第三方開源類庫。是一幫WindowsMobile愛好者共同編寫的,里 面提供了很多在.NETCompactFramework2.0中未能包含的類庫。有兩種方式可以來使用它:一種是可以將其當(dāng)作一個(gè)組件安裝在 VisualStudio2005中;另一種是可以將其原代碼編輯拿來使用。在OpenNETCF開源類庫中就包括有藍(lán)牙方面的,所以也可以利用 OpenNETCF來編寫藍(lán)牙通訊模塊。對(duì)應(yīng)類庫可在WWW.opennetcf.com網(wǎng)站下載。在類庫中,可以利用命名空間 OpenNETCF.IO.Ports下的Blue-toothSerialPort來建立藍(lán)牙連接,利用命名空間 OpenNETCF.IO.Serial中內(nèi)容進(jìn)行藍(lán)牙程序的通訊。
          2基于本機(jī)碼開發(fā)藍(lán)牙通訊模塊
          本機(jī)碼應(yīng)用程序是使用一套特定軟件平臺(tái)的應(yīng)用程序開發(fā)接口來開發(fā),并且被編譯成一個(gè)特定處理器的目的碼或機(jī)器碼。一般情況下,本機(jī)碼提供較高的效能和最小 的資源要求,但是被編譯好的本機(jī)碼或是可執(zhí)行文件卻只能在此軟件平臺(tái)或特定處理器上運(yùn)行。此外,本機(jī)碼應(yīng)用程序常需要應(yīng)用開發(fā)者自行處理類似內(nèi)存管理、資 源管理、安全性管理等。在VisualStudio2005中已經(jīng)可以利用C++語言來開發(fā)基于MFC,ATL或Win32API的本機(jī)碼WinCE 程序。這就提供了類似于用eMbeddedVisualC++來開發(fā)windowsmobile設(shè)備的方法。而本文在利用P/Invoke方法編寫 藍(lán)牙通訊模塊時(shí)介紹的就是調(diào)用本機(jī)碼開發(fā)藍(lán)牙應(yīng)用程序,方
          法類似,所以此處就不再進(jìn)行具體的分析了。
          3結(jié)束語
          本文討論了在VisualStudio2005里分別利用托管碼和本機(jī)碼來開發(fā)Windowsmobile設(shè)備藍(lán)牙通訊模塊的幾種方法。文中介紹的 藍(lán)牙通訊模塊各種開發(fā)方法都有各自的優(yōu)點(diǎn)和缺點(diǎn),如果用戶開發(fā)的藍(lán)牙通訊設(shè)備需要較高的效能和最小的資源要求,一定是采用本機(jī)碼的方法來開發(fā)是最好的。因 為采用本機(jī)碼開發(fā)的程序是直接被編譯成機(jī)器碼來執(zhí)行的,從而可以獲得更高的性能。但是采用本機(jī)碼來開發(fā)程序的最大缺點(diǎn)就是開發(fā)難度大,開發(fā)周期長,所以并 不適用于一般要求的用戶。而在對(duì)效能和資源要求并不是很高的產(chǎn)品中采用文中所述的托管碼中的幾種方法來開發(fā)藍(lán)牙通訊模塊則是更好的選擇,用托管碼開發(fā)的程 序會(huì)比較的簡(jiǎn)單和快速,同時(shí)又由于其并不直接生成最終的機(jī)器代碼,而是生成了中間代碼來執(zhí)行,所以用托管碼開發(fā)的程序可以跨平臺(tái)和處理器來運(yùn)行,但是這是 以犧牲一定的訪問速度為代價(jià)的。在基于托管碼開發(fā)藍(lán)牙通訊設(shè)備中本文共介紹了3種方法,因?yàn)榈?NETFRAMEWORK2.0的時(shí)候微軟公司都沒有 開發(fā)針對(duì)藍(lán)牙通訊模塊的類庫,所以利用P/Invoke方法編寫藍(lán)牙通訊模塊是在托管碼下開發(fā)藍(lán)牙通訊模塊比較常見的選擇。而微軟藍(lán)牙工具包和 OpenNETCF類庫編寫藍(lán)牙通訊模塊方法比較類似,其都是類庫對(duì)底層API的類封裝,所以開發(fā)起來較為簡(jiǎn)單和快速,更適合于一般要求的藍(lán)牙通訊模塊的 開發(fā)。
          藍(lán)牙設(shè)備在嵌入式環(huán)境下的應(yīng)用有著十分廣闊的前景,目前還有很多工作尚需研究。解決如何在Windowsmobile平臺(tái)下開發(fā)更好更高效的藍(lán)牙應(yīng)用程序能夠推動(dòng)藍(lán)牙技術(shù)在嵌入式產(chǎn)品上的更好利用。這一方面的開發(fā)將具有極強(qiáng)的實(shí)用性,將成為以后研究工作的重點(diǎn)。

          本文引用地址:http://www.ex-cimer.com/article/156912.htm

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          c++相關(guān)文章:c++教程



          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 藍(lán)牙 嵌入式

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();