新聞中心

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

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

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

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

        本文引用地址:http://www.104case.com/article/156912.htm

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

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



        上一頁 1 2 3 下一頁

        關鍵詞: 藍牙 嵌入式

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 惠水县| 乐平市| 汤阴县| 孝昌县| 綦江县| 东城区| 连江县| 遵义市| 合阳县| 孝昌县| 荔浦县| 新和县| 鄂伦春自治旗| 丰原市| 丰台区| 特克斯县| 且末县| 同德县| 都匀市| 岑巩县| 来凤县| 洪泽县| 高雄市| 福贡县| 应城市| 苏尼特右旗| 武邑县| 建水县| 临汾市| 咸阳市| 怀远县| 江孜县| 祁门县| 简阳市| 延庆县| 淮南市| 夏津县| 周口市| 会同县| 安康市| 永寿县|