實驗室做短距離通訊,藍芽是其中主要技術之一。研究生入學複試的時候,大老闆跟我們說,藍芽的起源和一位彈鋼琴的人有關,因為藍芽用到了跳頻,這個和手指在各個琴鍵之間跳動的現象有一定的聯絡。各學科之間的碰撞,會出現一些奇妙的火花。 在
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
」中完成的,包括發現裝置、建立連線和傳送資料等等,其主要的函式如下:
在程式啟動後,首先搜尋附近的藍芽裝置,搜尋過程完成以後,將其裝置的名字和藍芽位址顯示在下拉列表中,然後就可以進行雙向的訊息傳送和接收了。程式執行介面如下圖
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
Windows Mobile上的簽名
之前在windows mobile平台上開發的程式都沒有用到過特權api,一直沒有關心過windows mobile平台上簽名的問題.但是現在的專案必須要使用特權api,不簽名就可能無法在使用者的手機上執行 其實並不是執行不起來,而是那些特權api會呼叫失敗,這樣就得不到正確的結果,就像程式有bug...
Windows Mobile上使用鉤子
wince系統對於鉤子技術的支援,顯然不及windows。有一些技術文件乾脆說wince不支援鉤子。其實,不盡然。我們還是可以從coredll.dll中,得到一些有用的介面,來實現攔截一些簡單的鍵盤或滑鼠的動作。還是 最有說服力 define wh journalrecord 0 define wh...
Windows Mobile上使用鉤子
wince系統對於鉤子技術的支援,顯然不及windows。有一些技術文件乾脆說wince不支援鉤子。其實,不盡然。我們還是可以從coredll.dll中,得到一些有用的介面,來實現攔截一些簡單的鍵盤或滑鼠的動作。還是 最有說服力 define wh journalrecord 0 define wh...