<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

1.2利用微軟工具包編寫(xiě)通訊模塊
微軟工具包是微軟公司新推出來(lái)基于.NETCompactFramework2.0的一款專(zhuān)門(mén)用來(lái)快速開(kāi)發(fā)藍牙應用程序的工具包,直接 在.NET平臺下直接調用其中類(lèi)庫,可以快速,簡(jiǎn)單的開(kāi)發(fā)一般的藍牙應用程序。不過(guò)該工具包只能在WindowsCE5.0下使用。利用工具包可以完 成:?jiǎn)?dòng)一個(gè)藍牙服務(wù),尋找周邊藍牙設備,連接已存在的藍牙設備或者服務(wù)。工具包可以在微軟網(wǎng)站下載。
利用此工具做兩個(gè)藍牙設備間進(jìn)行簡(jiǎn)單文本傳輸的程序部分代碼如下:
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編寫(xiě)藍牙通訊模塊
OpenNETCF是一個(gè)可以有效提高WindowsMobile開(kāi)發(fā)效率的第三方開(kāi)源類(lèi)庫。是一幫WindowsMobile愛(ài)好者共同編寫(xiě)的,里 面提供了很多在.NETCompactFramework2.0中未能包含的類(lèi)庫。有兩種方式可以來(lái)使用它:一種是可以將其當作一個(gè)組件安裝在 VisualStudio2005中;另一種是可以將其原代碼編輯拿來(lái)使用。在OpenNETCF開(kāi)源類(lèi)庫中就包括有藍牙方面的,所以也可以利用 OpenNETCF來(lái)編寫(xiě)藍牙通訊模塊。對應類(lèi)庫可在WWW.opennetcf.com網(wǎng)站下載。在類(lèi)庫中,可以利用命名空間 OpenNETCF.IO.Ports下的Blue-toothSerialPort來(lái)建立藍牙連接,利用命名空間 OpenNETCF.IO.Serial中內容進(jìn)行藍牙程序的通訊。
2基于本機碼開(kāi)發(fā)藍牙通訊模塊
本機碼應用程序是使用一套特定軟件平臺的應用程序開(kāi)發(fā)接口來(lái)開(kāi)發(fā),并且被編譯成一個(gè)特定處理器的目的碼或機器碼。一般情況下,本機碼提供較高的效能和最小 的資源要求,但是被編譯好的本機碼或是可執行文件卻只能在此軟件平臺或特定處理器上運行。此外,本機碼應用程序常需要應用開(kāi)發(fā)者自行處理類(lèi)似內存管理、資 源管理、安全性管理等。在VisualStudio2005中已經(jīng)可以利用C++語(yǔ)言來(lái)開(kāi)發(fā)基于MFC,ATL或Win32API的本機碼WinCE 程序。這就提供了類(lèi)似于用eMbeddedVisualC++來(lái)開(kāi)發(fā)windowsmobile設備的方法。而本文在利用P/Invoke方法編寫(xiě) 藍牙通訊模塊時(shí)介紹的就是調用本機碼開(kāi)發(fā)藍牙應用程序,方
法類(lèi)似,所以此處就不再進(jìn)行具體的分析了。
3結束語(yǔ)
本文討論了在VisualStudio2005里分別利用托管碼和本機碼來(lái)開(kāi)發(fā)Windowsmobile設備藍牙通訊模塊的幾種方法。文中介紹的 藍牙通訊模塊各種開(kāi)發(fā)方法都有各自的優(yōu)點(diǎn)和缺點(diǎn),如果用戶(hù)開(kāi)發(fā)的藍牙通訊設備需要較高的效能和最小的資源要求,一定是采用本機碼的方法來(lái)開(kāi)發(fā)是最好的。因 為采用本機碼開(kāi)發(fā)的程序是直接被編譯成機器碼來(lái)執行的,從而可以獲得更高的性能。但是采用本機碼來(lái)開(kāi)發(fā)程序的最大缺點(diǎn)就是開(kāi)發(fā)難度大,開(kāi)發(fā)周期長(cháng),所以并 不適用于一般要求的用戶(hù)。而在對效能和資源要求并不是很高的產(chǎn)品中采用文中所述的托管碼中的幾種方法來(lái)開(kāi)發(fā)藍牙通訊模塊則是更好的選擇,用托管碼開(kāi)發(fā)的程 序會(huì )比較的簡(jiǎn)單和快速,同時(shí)又由于其并不直接生成最終的機器代碼,而是生成了中間代碼來(lái)執行,所以用托管碼開(kāi)發(fā)的程序可以跨平臺和處理器來(lái)運行,但是這是 以犧牲一定的訪(fǎng)問(wèn)速度為代價(jià)的。在基于托管碼開(kāi)發(fā)藍牙通訊設備中本文共介紹了3種方法,因為到.NETFRAMEWORK2.0的時(shí)候微軟公司都沒(méi)有 開(kāi)發(fā)針對藍牙通訊模塊的類(lèi)庫,所以利用P/Invoke方法編寫(xiě)藍牙通訊模塊是在托管碼下開(kāi)發(fā)藍牙通訊模塊比較常見(jiàn)的選擇。而微軟藍牙工具包和 OpenNETCF類(lèi)庫編寫(xiě)藍牙通訊模塊方法比較類(lèi)似,其都是類(lèi)庫對底層API的類(lèi)封裝,所以開(kāi)發(fā)起來(lái)較為簡(jiǎn)單和快速,更適合于一般要求的藍牙通訊模塊的 開(kāi)發(fā)。
藍牙設備在嵌入式環(huán)境下的應用有著(zhù)十分廣闊的前景,目前還有很多工作尚需研究。解決如何在Windowsmobile平臺下開(kāi)發(fā)更好更高效的藍牙應用程序能夠推動(dòng)藍牙技術(shù)在嵌入式產(chǎn)品上的更好利用。這一方面的開(kāi)發(fā)將具有極強的實(shí)用性,將成為以后研究工作的重點(diǎn)。

本文引用地址:http://dyxdggzs.com/article/156912.htm

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

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



上一頁(yè) 1 2 3 下一頁(yè)

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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>