Windows Mobile上的藍芽點對點通訊

來源:互聯網
上載者:User

    實驗室做短距離通訊,藍芽是其中主要技術之一。研究生入學複試的時候,大老闆跟我們說,藍芽的起源和一位彈鋼琴的人有關,因為藍芽用到了跳頻,這個和手指在各個琴鍵之間跳動的現象有一定的聯絡。各學科之間的碰撞,會出現一些奇妙的火花。

    在Windows Mobile平台上,如何來實現藍芽通訊呢?有好多人已經做過這方面的工作,比如在winbile論壇的“使用C#來開發.NET CF 藍芽通訊模組”,codeproject上的“Bluetooth Connection in Windows Mobile 5.0 using InThehand - C#”和“Bluetooth Simulation in C# with Serial Ports”等等。

    其實,安裝了windows mobile 6.0 Professional SDK之後,內建的sample中就有藍芽通訊的例子,包括Bluetooth Device Discovery、Chatting over Bluetooth和Bluetooth Game。前面兩個是C++寫的,第三個是用C#來寫的。Bluetooth Device Discovery是採用“Winsock 2 API”來實現藍牙裝置的發現。Chatting over Bluetooth是在兩個藍牙裝置之間建立點對點的通訊。Bluetooth Game是使用藍芽技術,在兩台裝置之間建立串連,然後進行遊戲。手頭正好有兩台bluetooth的裝置,一台是WM5系統,一台是WM6的,所以決定試試Chatting over Bluetooth。

    開啟Chatting over Bluetooth工程,發現這是一個基於對話方塊的MFC,對藍芽的操作主要是在“BthUtils.cpp”中完成的,包括髮現裝置、建立串連和發送資料等等,其主要的函數如下:

Code
1 int DiscoverDevices();
2 int GetNumDevices(){return m_iNumDevices;};
3 int GetDeviceInfo(DeviceInfo *pPeerDevicesInfo);
4 int GetLocalDeviceName(DeviceInfo *pLocalDeviceInfo);
5 int GetDeviceInfo(DeviceInfo *pPeerDeviceInfo, int iSelectedItem);
6 int OpenServerConnection(BYTE *rgbSdpRecord, int cSdpRecord, int iChannelOffset, void (*funcPtr)( WCHAR*));
7 int SendMessageToServer(WCHAR *strGUID, WCHAR *szMessage, int iSelectedDeviceIndex);

 

    在程式啟動後,首先搜尋附近的藍牙裝置,搜尋過程完成以後,將其裝置的名字和藍芽地址顯示在下拉式清單中,然後就可以進行雙向的訊息發送和接收了。程式運行介面如1所示:

圖1:WM5和WM6上的程式運行介面

    需要注意的是,在設定藍芽的時候,如果沒有將“對其他裝置可見”選項打上勾,即只是將藍芽開啟,如2所示:

圖2:藍芽處於開啟狀態

    可能無法正常通訊,應用程式會提示無法發送訊息。選中“對其他裝置可見”之後,就能夠正常通訊了,如3所示:

圖3:藍芽處於可見狀態

   

參考連結:

使用C#來開發.NET CF 藍芽通訊模組

Bluetooth Connection in Windows Mobile 5.0 using InThehand - C#

Bluetooth Simulation in C# with Serial Ports

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.