C#開發CF藍牙模塊深入剖析
C#語言有很多值得學習的地方,這里我們主要介紹C#開發CF藍牙模塊,包括介紹那么藍牙設備的DeviceID什么樣子等方面。
在Windows Mobile軟件開發中.Net正扮演著日益重要的角色,我們已經可以看到很多用.Net CF開發的軟件,這些軟件涉及到了日常應用的方方面面。在智能設備的軟件開發中,無線互聯是一個相當重要的一塊,我們可以看到,紅外幾乎是所有智能設備的標配,而藍牙也日益在越來越多的智能設備上出現,有了硬件,顯然要有相應的軟件相關的應用。
我們也知道,用.NET CF開發紅外通信應用時相當輕松的,因為.NET CF中有一個命名空間System.Net.IrDA就是用于紅外通信的通信模塊。但是,.NET CF中還沒有關于藍牙通信的模塊,所以目前來講做這方面的開發還有一定的困難。下面,就談談如何用C#開發CF藍牙模塊。
基本要點
首先明確一點,因為涉及到驅動硬件的問題,所以僅靠了解C#開發的相關知識顯然是無法完成開發的,我們必須對C++開發有所了解。但是為了簡單起見,我們不希望用C++寫半行代碼,所有的編碼工作全部使用C#,也就是說,使用的開發環境只需要使用Visual Studio.net,不需要用其他的編輯器。
作為開發這類驅動硬件的程序的知識準備,您需要了解C++的基本知識,知道頭文件是怎么一回事,知道托管代碼如何與非托管代碼交互。因為本文的核心是說明如何開發.net CF藍牙通信模塊,所以前述這些準備知識并不作講述。
C#開發CF藍牙模塊
做藍牙通信模塊開發,自然先要知道藍牙通信是怎么一回事。在我看來,藍牙通信應該和紅外通信模塊類似,當然我是從開發者的角度來講,抽象化以后應該就是這樣,當然藍牙和紅外通信也有很多不一樣的地方,這在面向對象設計里面怎么講,我想一定有很多人理解的比我透徹。好了,這就是我們的基本思路了。我曾經在網上查過關于藍牙開發的文章,很多人在.net CF開發中把藍牙通信當作一個串行通信來處理,這也是不錯的,但是我不是很喜歡,因為這樣做的話,并不是針對藍牙來開發的,換言之,在使用過程中,需要先手動開啟藍牙,配對,連接,建立串行通道,然后開啟應用程序使用,你還要在應用程序中設置串行端口,對最終用戶來講,這是非常麻煩的。我覺得,這樣的解決方案冠上藍牙通信的名頭簡直就是……不多說了,書歸正傳。
在紅外通信中,我們知道,設備的DeviceID是一個Byte數組,那么藍牙設備的DeviceID什么樣子呢?我想這個大家都很清楚,是一串以“:”分隔的16進制數字。紅外通信中,一般而言紅外并沒有開啟、關閉之類的狀態,但是藍牙有開啟、關閉、可發現三種狀態。紅外沒有安全設置,而藍牙有安全設置,所以我們需要對藍牙設備進行配對,而紅外通信這部需要。
我們查看.net的Socket地址族里有IrDA,但是沒有藍牙相關的地址族,這是我們需要解決的問題。以上介紹C#開發CF藍牙模塊。
【編輯推薦】