Windows でのセンサーおよび位置情報プラットフォームの概要

Windows オペレーティング システムでは、センサー デバイスがネイティブでサポートされています。 このサポートには、GPS デバイスなどの位置センサーが含まれています。 このサポートの一環として、プラットフォームでは、デバイスの製造元がソフトウェア開発者やコンシューマーにセンサー デバイスを公開するための標準的な方法が提供されています。 同時に、プラットフォームでは、センサーとセンサー データを操作するための標準化された API およびデバイス ドライバー インターフェイス (DDI) が開発者に提供されます。 このセクションでは、Windows Sensor and Location プラットフォームの概要を示し、プラットフォームのさまざまな部分について説明します。また、各部が連携して、センサーを操作するための包括的なシステムが提供される方法について説明します。

センサー デバイスの概要

センサーは多くの構成に含まれており、ある意味で、物理的な現象に関するデータを提供するほぼすべてのものをセンサーと呼ぶことができます。 通常、センサーはハードウェア デバイスとして考えられますが、ソフトウェアまたはファームウェアでセンサーの機能をエミュレーションすることで情報を提供する論理センサーも存在します。 また、1 つのハードウェア デバイスに複数のセンサーを含めることもできます。

センサーおよび位置情報プラットフォームでは、センサーは、センサー デバイスの大まかなクラスを表すカテゴリと、特定の種類のセンサーを表す種類に分類されます。 たとえば、プレイヤーの手の位置と動きを検出するビデオ ゲーム コントローラーのセンサーは (ビデオ ボウリング ゲームなど)、向きセンサーとして分類されますが、その種類は 3-D 加速度計になります。 Windows ではコードとして、グローバル一意識別子 (GUID) を使用してカテゴリと種類が表現され、その多くは事前に定義されています。 デバイスの製造元は、必要に応じて新しい GUID を定義および発行することによって、新しいカテゴリと種類を作成できます。

位置デバイスは、特に興味深いカテゴリの 1 つです。 現在、多くの人は Global Positioning System (GPS) に慣れ親しんでいます。 Windows では、GPS は、位置カテゴリに含まれるセンサーの一種です。 位置カテゴリには、他の種類のセンサーが含まれる場合があります。 これらのセンサーの種類には、インターネット アドレスに基づいて位置情報を提供する IP リゾルバー、近くの基地局に基づいて位置を特定する携帯電話機の基地局による三角測量機、Wi-Fi ネットワークの存在から位置を特定するセンサーなど、ソフトウェア ベースのものがあります。

プラットフォームについて

Windows Sensor and Location プラットフォームは、次の開発者およびユーザー コンポーネントで構成されています。

  • DDI。 Windows では、センサー デバイスをコンピューターに接続し、他のサブシステムにデータを提供するための標準的な方法が用意されています。
  • Windows Sensor API では、接続されたセンサーとセンサー データを操作するための一連のメソッド、プロパティ、イベントが提供されます。
  • Windows Sensor API 上に構築される Windows Location API には、一連のプログラミング オブジェクトが用意されています。 これらのオブジェクトには、位置情報を操作するためのスクリプト オブジェクトが含まれます。
  • コントロール パネルを使用すると、コンピューターのユーザーが位置情報の設定を制御できます。

以降のセクションでは、これらの各コンポーネントについて説明します。

デバイス ドライバー インターフェイス

センサーの製造元は、センサーを Windows に接続するためのデバイス ドライバーを作成することができます。 センサーのデバイス ドライバーは、Windows User Mode Driver Framework (UMDF) をベースにした Windows ポータブル デバイス (WPD) ドライバー モデルを使用して実装されます。多くのデバイス ドライバーは、これらのフレームワークを使用して作成されています。 これらのテクノロジが確立されているため、経験のあるデバイス ドライバー プログラマにとって、センサー ドライバーの作成は手慣れた作業です。 センサー DDI では、UMDF および WPD の特定のデータ型やインターフェイスを使用します。必要に応じて、センサー固有の WPD コマンドやパラメーターを定義することもあります。

センサーを Windows (具体的にはセンサーおよび位置情報プラットフォーム) に公開するデバイス ドライバーを簡単に記述できるように、オペレーティング システムにはドライバー クラス拡張機能が含まれています。 センサー デバイス ドライバーの必須コンポーネントとして、この COM オブジェクトでは、プログラマが多くの定型コードを記述せずにセンサー ドライバーを実装できるようにするためのシンプルなインターフェイス セットが提供されます。 また、このクラス拡張機能によって WPD 呼び出しの管理が軽減され、管理が不要になることもあります。 このドキュメントには、センサー DDI およびクラス拡張機能オブジェクトに関する詳細情報が含まれています。

センサー API

Windows Sensor API を使用すると、C++ 開発者は一連の COM インターフェイスを使用してセンサー ベースのプログラムを作成できます。 この API では、カテゴリ、種類、または ID によるセンサーの管理、センサー イベントの管理、個々のセンサーとセンサー コレクションの操作、センサー データの操作など、センサーの一般的なプログラミング タスクを実行するためのインターフェイスが定義されています。 Windows SDK には、Windows プログラムでセンサーを使用する方法をソフトウェア開発者にガイドするのに役立つヘッダー ファイル、ドキュメント、サンプル、ツールが含まれています。

Location API

センサー プラットフォーム上に構築された Location API を使用すると、ユーザーのプライバシーを保護しながら、地理的な場所に関するデータを簡単に取得できます。 Location API では、オブジェクトを表す一連の COM インターフェイスを通じて機能が提供されます。 これらのオブジェクトは、C++ プログラミング言語や、JScript などのスクリプト言語を使用して COM を使用する方法を理解しているプログラマが利用できます。 スクリプト サポートを使用すると、ガジェットなど、ローカル コンピューター ゾーンで実行されるプロジェクトで位置データに簡単にアクセスできます。 Windows SDK には、プログラムで位置情報を使用する方法を Web およびソフトウェア開発者にガイドするのに役立つヘッダー ファイル、ドキュメント (スクリプト リファレンス ドキュメントを含む)、サンプル、ツールが含まれています。

ユーザー コントロール パネル

Windows には、コンピューターのユーザーが位置の設定を有効または無効にできるコントロール パネルが含まれています。 これらの設定によって機密データが公開されるおそれがあるため、このユーザー インターフェイスにより、プログラムからユーザーの位置にアクセスできるかどうかをユーザーが制御できます。

ホワイトペーパー

タイトル 説明
HID センサーの使用状況 このホワイト ペーパーでは、Windows 8 以降のオペレーティング システム用の HID センサー クラス ドライバーに関する情報を提供します。
環境光センサーと Windows 10 Creators Update を実行しているコンピューターとの統合 このホワイト ペーパーでは、Windows 10 オペレーティング システムの環境光センサー (ALS) 機能に関する情報を提供します。
モーション センサーと方位センサーの統合 このホワイト ペーパーは、OEM、ODM、および IHV が Windows 10 以前のオペレーティング システム用のモーション センサーと方位センサーの機能および要件について理解できるよう支援することを目的としています。