次の方法で共有


マルチタッチ ドライバーでのパケット報告モードの選択 (Windows 7)

Windows は、マルチタッチ データをシステムに報告する 3 つの方法 (シリアル モード、並列モード、ハイブリッド モード) をサポートしています。 ベンダーが提供する HID レポート記述子は、選択されたモードによって異なります。

これらのモードを使用すると、オペレーティング システム コンポーネントからアプリケーションへのデータ配信の効率が向上する可能性があるため、ベンダーはハイブリッド モードまたは並列モードを使用することをお勧めします。

シリアル モード

各パケットには、1 つの物理的な接触点を記述する情報が含まれています。 複数の接触が連続的にストリーミングされます。

このモードでは、デバイスは、すべての接触情報を一連のパケットで報告します。 各パケットには、1 つの物理的な接触を記述する情報が含まれています。 デバイスは、同時に接続する接触ごとに個別のパケットを送信します。

たとえば、2 本の指を置いている場合、シリアル モードを使用するデバイスは最初の接触の更新を送信し、次に 2 番目の接触トの更新を送信します。 このプロセスは、両方の指がデジタイザーと接触している限り繰り返されます。

シリアル モードでは、デバイス上の各物理的な接点の有効なレポート速度が低下する可能性があります。 たとえば、デバイスがミリ秒 (ms) ごとに 1 回更新を送信でき、2 つの物理的接触が存在する場合、各接触点は 2 ミリ秒ごとに更新されます。

シリアル モードレポート記述子のサンプルについては、「サンプル レポート記述子 (シリアル レポート モード)」を参照してください。

比較すると、ハイブリッドと並列のレポート モードでは、データ配信のオーバーヘッドが削減されるというメリットがあります。

並列モード

並列モードでは、デバイスはすべての接触情報を 1 つのパケットで報告します。 物理的な接触はそれぞれ、最上位コレクションに埋め込まれている論理コレクションによって表されます。 この論理コレクションには、デバイスが各接触 (たとえば、X、Y、圧力) に対してサポートしているすべての使用状況が含まれています。 通常、デバイスは最大よりも少ない接触数を報告します。このため、並列パケットで報告される接触の数の通信は、接触数の使用状況か、またはパケット内のすべての無効な接触に対して null 値を設定することで行う必要があります。

たとえば、3 つの接触をサポートするデバイスを考えてみます。 ユーザーが現在デジタイザー上に 2 本の指しか置いていない場合、並列パケットには、3 つの接触のデータを伝送できるパケットに 2 つの有効な接触データしか含まれません。 この場合は、接触の数を 2 に設定して、クライアント アプリケーション側が 3 つ以上の接触に関する情報を無効と認識できるようにする必要があります。

または、デバイスは、2 番目のエントリを超える接触の使用状況の値を null 値に設定できます。 クライアント アプリケーションは、接触数の使用状況の値を調べるか、null 値が検出されるまでデータを読み取って、実際の接触を検出できます。

サンプルの並列モード レポート記述子については、「サンプル レポート記述子 (並列/ハイブリッド モード)」を参照してください。

1 つのパケットで複数の接触を報告することの欠点は、報告する接触数が可能な接触の最大数よりも少なくなるたびに、パケットあたりのスペースが無駄になることです。 デバイスはハイブリッド レポート モードを使用して、この非効率性を低減できます。

ハイブリッド モード

ハイブリッド モードでは、1 つのパケットで報告できる接触の数が、デバイスがサポートしている接触の最大数よりも少なくなります。 たとえば、最大 48 の物理的な同時接触をサポートするデバイスでは、1 つのパケットに最大 12 の接触を報告するように、その最上位コレクションを設定できます。 48 の接触点が現在有効な場合、デバイスは、それぞれ 12 の接触を報告する 4 つのシリアル パケットに分割できます。

この方法によってデバイスでデータを報告する場合、最初のパケットの接触数の使用状況の値には、ハイブリッド パケットで報告されている接触の総数が反映されている必要があります。 その他のシリアル パケットの接触数は、0 である必要があります。 前の例を使用すると、最初のパケットの接触数の使用状況の値は 48 ですが、後者の 3 つのパケットの接触の使用状況は 0 です。

ハイブリッドおよび並列レポート モードには、データ配信のオーバーヘッドを削減するという長所があります。

サンプルのハイブリッド モード レポート記述子については、「サンプル レポート記述子 (並列/ハイブリッド モード)」を参照してください。

null 値

null 値は、HID 仕様で概説されているように指定する必要があります。 null ビットは、レポート記述子内のすべてのメイン項目に設定する必要があります。 デバイスは、パケット内の有効な接触の実際の数をホストに通知するために、接触数の使用状況または null 値を使用できます。