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