基于SmartPhone的藍牙遙控系統設計與實(shí)現
3.2 藍牙設備間的數據傳輸
SmartPhone 端在利用藍牙模塊與PC 端進(jìn)行通信前,首先要對PC 端的藍牙設備進(jìn)行查詢(xún)搜索,來(lái)獲得設備的名稱(chēng)、地址、所提供的服務(wù)等相關(guān)信息。在以往的系統設計中,設備 查詢(xún)需要調用相關(guān)的藍牙API 函數來(lái)遍歷取得通信范圍內的藍牙設備信息,并將結果信息 存入系統定義的WSAQUERYSET 數據結構中,然后再通過(guò)注冊虛擬串口,實(shí)現設備間的藍牙串行通信,整個(gè)過(guò)程復雜并且容易出錯,或者有的系統干脆采用手工指定的方式。本系統則采取一種新的方法,通過(guò)讀取系統的注冊表,來(lái)查詢(xún)相關(guān)的藍牙設備名稱(chēng)、服務(wù)以及使用 的虛擬串口號。在Windows Mobile 5.0 平臺中, 注冊表HKEY_LOCAL_MACHINESOFTWAREMicrosoftBluetoothDevice 下存儲了藍牙設備的設備名稱(chēng)、16 位字符的ID 號以及設備的CLASS , 而 HKEY_LOCAL_MACHINESOFTWAREMicrosoftBluetoothSerialPorts 下則存儲了藍牙連接所使用的虛擬串口號,但不包含系統保留的串口標識。在這個(gè)鍵值下系統為每一個(gè)匹配的 設備都設定了一個(gè)藍牙串口號,而且可以通過(guò)指定"New Outgoing Port"值設定設備的新虛擬 串口號。
利用這種新的機制就不在需要使用傳統的RegisterDevice()方法去注冊虛擬串口號 然后使用,而是通過(guò)查詢(xún)或設定注冊表進(jìn)行使用,而不與別的串口相沖突。通過(guò)對以上方法獲得設備及虛擬串口號的信息后,再利用這些信息實(shí)現 SmartPhone 端 和PC 端的藍牙通信。通信過(guò)程的流程圖如圖2 所示:
3.3 Powerpoint 控制解決方案
評論