次の方法で共有


Windows の Sensor and Location プラットフォームの紹介

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

センサー デバイスの概要

センサーはさまざまな構成で提供されており、考え方によっては、物理的な現象に関するデータを提供するほとんどすべてのものをセンサーと呼ぶことができます。通常、センサーというとハードウェア デバイスを思い浮かべますが、ソフトウェアやファームウェアでセンサー機能をエミュレートする論理センサーからも情報を取得できます。また、1 台のハードウェア デバイスに複数のセンサーが組み込まれていることもあります。

Windows Sensor and Location プラットフォームでは、センサーは、カテゴリ (センサー デバイスの大まかな分類を表します) と種類 (特定の種類のセンサーを表します) に分類されます。たとえば、プレイヤーの手の位置と動きを検出するビデオ ゲーム コントローラーのセンサー (ボーリング ビデオ ゲームのものなど) は方位センサーというカテゴリに分類されますが、種類は 3D 加速度計です。Windows 7 では、コード上は、グローバル一意識別子 (GUID) を使用してカテゴリや種類を表します。GUID の多くはあらかじめ定義されています。デバイスの製造元は、必要に応じて新しい GUID を定義して公開することで、新しいカテゴリおよび種類を作成できます。

位置デバイスには、特に興味深いカテゴリが 1 つあります。現在では、ほとんどの人が Global Positioning System (GPS) のことをよく知っています。Windows 7 では、GPS はセンサーの一種で、"位置" カテゴリに属します。"位置" カテゴリには、その他の種類のセンサーも含まれることがあります。これらの種類のセンサーには、ソフトウェア ベースのセンサーもあります。たとえば、インターネット アドレスに基づいて位置情報を提供する IP リゾルバー、付近の基地局に基づいて位置を特定する携帯電話基地局トライアングレーター、接続されているワイヤレス ネットワーク ハブから位置情報を読み取る Wi-Fi ネットワーク位置プロバイダーなどがあります。

プラットフォームの概要

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

  • DDI。Windows 7 では、DDI により、標準的な方法でセンサー デバイスをコンピューターに接続すること、および他のサブシステムにデータを提供することができます。

  • Windows Sensor API。接続されているセンサーやセンサー データを操作するための一連のメソッド、プロパティ、およびイベントを提供しています。

  • Windows Location API。Windows Sensor API を基に構築されており、一連のプログラミング オブジェクトを提供しています。これらのオブジェクトには、位置情報を操作するためのスクリプト オブジェクトが含まれます。

  • コントロール パネルの [位置センサーとその他のセンサー]。コンピューターの管理者は、ここで、各ユーザーのために位置センサーなどのセンサーの設定を制御できます。

次の図は、Sensor and Location プラットフォームのコンポーネント、および各コンポーネントの相互関係を示しています。

 

Sensor and Location プラットフォームのコンポーネント、および各コンポーネントの相互関係

Sensor and Location プラットフォームのコンポーネント、および各コンポーネントの相互関係

 

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

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

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

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

Sensor API

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

Location API

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

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

Windows 7 には、コンピューターの管理者がシステム全体または個々のユーザーについてセンサーの有効/無効を切り替えることができるコントロール パネルが用意されています。一部のセンサーでは機密データが公開される可能性があるため、管理者はこのユーザー インターフェイスを使用することで、各センサーにプログラムがアクセスできるようにするかどうかをユーザーごとに制御できます。また、ユーザーは、センサーのプロパティを表示することや、ユーザー インターフェイスに表示されるセンサーの説明を変更することができます。