新聞中心

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

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

作者: 時間:2010-11-29 來源:網絡 收藏

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

本文引用地址:http://m.butianyuan.cn/article/156912.htm

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

c++相關文章:c++教程



上一頁 1 2 3 下一頁

關鍵詞: 藍牙 嵌入式

評論


相關推薦

技術專區(qū)

關閉