Windows 7作系統提供感測器裝置的內建支援。 這包括位置感測器的支援,例如 GPS 裝置。 在這項支援中,Windows 感測器和位置平臺提供標準方式讓裝置製造商向軟體開發人員和取用者公開感測器裝置。 同時,平臺可讓開發人員使用標準化的 API 和設備驅動器介面 (DDI)來處理感測器和感測器數據。
關於感測器裝置
感測器有許多組態,從某種觀點來看,幾乎任何提供實體現象數據的任何專案都可以稱為感測器。 雖然我們通常會將感測器視為硬體裝置,但邏輯感測器也可以透過模擬軟體或韌體中的感測器功能來提供資訊。 此外,單一硬體裝置可以包含多個感測器。
Windows 感測器和位置平臺會將感測器組織成 類別,代表廣泛的感測器裝置類別,以及 類型,代表特定類型的感測器。 例如,在視頻遊戲控制器中,偵測玩家手的位置和移動的感測器(也許針對視頻保齡球遊戲)會分類為 Orientation 感測器,但其類型會是 3D 加速計。 在程式代碼中,Windows 會使用全域唯一標識碼 (GUID) 來代表類別和類型,其中許多是預先定義的。 當需要時,裝置製造商可以藉由定義和發佈新的 GUID 來建立新的類別和類型。
位置裝置構成一個特別有趣的類別。 到目前為止,大多數人都熟悉全球定位系統(GPS)。 在 Windows 中,GPS 感測器是 [位置] 類別的一部分。 [位置] 類別可能包含其他感測器類型。 其中一些感測器類型是以軟體為基礎,例如IP解析程式,其會根據因特網位址提供位置資訊、根據附近的塔樓決定位置的行動電話塔三角器,或從連線無線網路中樞讀取位置資訊的 Wi-Fi 網路位置提供者。
關於平臺
Windows 感測器和位置平臺包含下列開發人員和使用者元件:
- DDI 可讓 Windows 提供標準方式讓感測器裝置連線到計算機,並將數據提供給其他子系統。
- Windows 感測器 API 提供一組方法、屬性和事件,以使用連接的感測器和感測器數據。
- Windows 位置 API 建置在 Windows 感測器 API 上,提供一組程式設計物件,包括腳本物件,以使用位置資訊。
- [位置] 和其他感測器控制面板可讓計算機系統管理員設定每個使用者的感測器,包括位置感測器。
下列各節將說明每個元件。
架構圖
下圖顯示元件之間的關聯性。
設備驅動器介面
感測器製造商可以建立設備驅動器來連接感測器與 Windows 7。 感測器設備驅動器是使用以 Windows 使用者模式驅動程式架構 (UMDF) 為基礎的 Windows 可攜式裝置 (WPD) 驅動程式模型來實作。許多設備驅動器都是使用這些架構所撰寫。 由於這些技術已建立,經驗豐富的設備驅動器程式設計人員會發現撰寫感測器驅動程式以做為熟悉的工作。 感測器 DDI 會使用特定的 UMDF 和 WPD 資料類型及介面,並在需要時定義與感測器有關的 WPD 命令和參數。 如需建立感測器設備驅動器的詳細資訊,請參閱 Windows 驅動程式套件。
感測器 API
感測器 API 可讓C++開發人員使用一組 COM 介面來建立感測器型程式。 API 會定義介面來執行常見的感測器程序設計工作,包括依類別、類型或標識元管理感測器、管理感測器事件、使用個別感測器和感測器集合,以及使用感測器數據。 Windows SDK 包含頭檔、檔、範例和工具,可協助引導軟體開發人員瞭解如何在 Windows 程式中使用感測器。 本文件說明感測器 API。
位置 API
位置 API 建置在感測器 API 上,可讓您輕鬆擷取地理位置的相關數據,同時保護用戶隱私權。 位置 API 會透過一組代表物件的 COM 介面來提供其功能。 這些物件可供程式設計人員使用,他們瞭解如何透過C++程式設計語言或腳本語言使用 COM,例如 JScript。 腳本支援讓您能輕鬆存取在本機電腦區域中執行的專案的位置數據,例如小工具。 Windows SDK 包含頭檔、檔(包括腳本參考檔)、範例和工具,可協助引導 Web 和軟體開發人員瞭解如何在其程式中使用位置資訊。
位置和其他感測器控制面板
Windows 7 包含一個控制面板,可讓計算機系統管理員啟用或停用全系統或每個用戶的感測器。 由於某些感測器可能會公開敏感數據,此使用者介面可讓系統管理員控制所有程式是否都能存取每個用戶的感測器。 使用者也可以檢視感測器屬性,並變更使用者介面中顯示的感測器描述。
[控制面板] 也提供 [預設位置] 頁面,讓使用者提供其位置。 當沒有感測器可用時,平臺會使用使用者提供的位置。 使用者可以提供公民位址欄位,包括街道位址、城市、州或省,以及國家或地區。