基於32feet.net對Broadcom(Widcomm) stack藍芽(Bluetooth)裝置開發Windows Mobile與PC程式

來源:互聯網
上載者:User
背景

Widcomm是第一個為Windows編寫藍芽Stack的公司,後來給Broadcom收購了,由於他是第一個,所以目前很多藍牙裝置都是使用Broadcom Statck的。下面講述如何使用32feet.net對基於Broadcom Statck的藍牙裝置進行開發。

 

本文的例子是基於 Windows Mobile 與 PC之間的通過藍芽(Bluetooth) 傳輸檔案的開發 和 Windows Moible, Wince 使用.NET Compact Framework進行藍芽(Bluetooth)開發 之 32feet.NET 的基礎上修改的。

 

緣由

謝謝 yanghao 同學的建議, 講一下寫這篇文章的緣由。 這篇文章是為瞭解決 崔江 同學提出的問題而寫的,我之前寫了一系列關於藍芽開發的文章,在這些文章的讀者中,有不少人提問如何使用widcomm Stack進行藍芽的相關開發,我在g.cn和baidu裡面尋找過,發現國內關於這方面的文章很少,所以把自己的經驗總結下來,可能該文章比較難懂,請先閱讀“進一步閱讀”下的連結,這些文章相對來說是入門篇到進階篇,這篇算是那些文章的延續了,算是進階篇。 

 

驅動安裝

進行Broadcom stack的開發,必須安裝該驅動程式,下面以XP為例子,說明Broadcom驅動程式的安裝。

插入Broadcom stack的藍芽dongle。

插入驅動程式的CD進行安裝。

安裝完畢能看到該藍牙裝置。

 

32feet.net源碼下載

到codeplex下載32feet.net最新的代碼,由於最新的32feet.net的release沒有包含對Broadcom stack的支援,所以需要下載build版本。最新的build版本如下:
http://32feet.codeplex.com/SourceControl/ListDownloadableCommits.aspx

 

Broadcom stack的Native DLL

如果使用Microsoft Stack,32feet.net可以直接調用Wince(Windows Embedded CE)和Windows Mobile內建的btdrt.dll和BthUtil.dll。但是使用Broadcom stack的情況就不一樣了。32feet.net封裝了Native的DLL來調用Broadcom的驅動。 在源碼包裡面已經包含了build好的DLL,看。

    

為PC的Native DLL。

 

為Windows Mobile的Native DLL。

 

32feet.net編譯

開啟\32feet-61144\InTheHand.Net.Personal_Widcomm下的解決方案。

分別編譯InTheHand.Net.Personal.CF2和InTheHand.Net.Personal.FX2項目產生32feet.net的.NET Assembly InTheHand.Net.Personal.dll.

 

項目引用的更新

把引用都更新到新編譯的InTheHand.Net.Personal.dll。

為了節省時間,我的例子是在原先文章的基礎上進行修改的。原文參考  Windows Mobile 與 PC之間的通過藍芽(Bluetooth) 傳輸檔案的開發 

 

修改以支援Broadcom Stack

修改對InTheHand.Net.Personal.dll的引用。

注釋設定PrimaryRadio.Mode 的調用,因為Broadcom(Widcomm) stack不支援設定PrimaryRadio.Mode 。

//InTheHand.Net.Bluetooth.BluetoothRadio.PrimaryRadio.Mode = InTheHand.Net.Bluetooth.RadioMode.Discoverable;

 

 

部署程式PC端

和Microsoft Stack不一樣,部署的時候不僅僅需要部署程式,而且需要部署Native DLL及其依賴的DLL。如果不部署這些依賴DLL,程式會拋出異常。這是之前 崔江 同學調試一直出錯的原因。

我把這些依賴的DLL都放到源碼包裡面了。

 Windows Mobile端

Windows Mobile端相對簡單,依賴的DLL本身已經安裝到裝置上去了。

 

只是需要部署應用程式,inthehand.net.personal.dll 和 32feetWidcomm.dll就可以了。

 

配對藍牙裝置

程式啟動並執行時候,需要手工配對。

但是在Microsoft Stack裡面可以通過程式來配對的,可以參考 Windows Moible, Wince 使用.NET Compact Framework的進行藍芽(Bluetooth)裝置配對的開發

 

測試基於Broadcom stack的檔案傳輸程式

兩邊都是Broadcom Stack,但是服務端接收到ObexListener的請求的時候會拋出異常,如下:

ObexListenerContext olc = listener.GetContext();

 

因為Broadcom(Widcomm) Stack是不支援sockets的,所以Broadcom(Widcomm) Stack不能作為ObexListener來使用,我把ObexListener換成Microsoft Stack,一切運行正常。

原始碼: http://files.cnblogs.com/procoder/BroadcomBluetoothObex.rar

如果需要換成Microsoft Stack,只需要換InTheHand.Net.Personal.dll的引用就可以了。

 

同時我也在 Windows Moible, Wince 使用.NET Compact Framework進行藍芽(Bluetooth)開發 之 32feet.NET 的基礎上做了一個兩端都Broadcom Stack的通訊程式。

原始碼:http://files.cnblogs.com/procoder/BroadcomBluetooth.rar

我同時發現如果服務端為Broadcom Stack的程式,有掛死現象,我改成Microsoft Stack問題又解決了。

        

 

關於Broadcom Stack(Widcomm Stack)開發的建議

32feet.net對Broadcom Stack(Widcomm Stack)的支援是不完整的。支援情況可以參照這個文檔:http://files.cnblogs.com/procoder/32feet-and-Widcomm-Broadcom.doc

 

我建議不是萬不得已的情況下,不用使用Broadcom Stack(Widcomm Stack),使用Microsoft Stack很多問題都迎刃而解了。這裡有一個文檔講述如何把非Microsoft Stack的裝置安裝Microsoft Stack。請參考:http://files.cnblogs.com/procoder/Belkin-F8T012-and-Microsoft-Stack.doc

 

 

進一步閱讀

更多的藍芽開發相關文章如下:

Windows Moible, Wince 使用.NET Compact Framework的進行藍芽(Bluetooth)開發 之 Windows Embedded Source Tools for Bluetooth

Windows Moible, Wince 使用.NET Compact Framework進行藍芽(Bluetooth)開發 之 32feet.NET

Windows Moible, Wince 使用.NET Compact Framework的進行藍芽(Bluetooth)開發 之 藍芽虛擬串口 (Bluetooth Virtual Serial Port)(可以用於把Bluetooth的GPS receiver變成串口)

Windows Moible, Wince 使用.NET Compact Framework的進行藍芽(Bluetooth)裝置配對的開發

30 Days of .NET [Windows Mobile Applications] - Day 02: Bluetooth Manager(藍芽管理器) (簡單的Bluetooth應用)

Windows Moible, Wince 使用.NET Compact Framework的進行藍芽(Bluetooth)廣播程式的開發

Windows Mobile 與 PC之間的通過藍芽(Bluetooth) 傳輸檔案的開發

Windows Mobile下通過藍芽(Bluetooth)發送大檔案的實現

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.