Freigeben über


Sammlung von Windows-Präzisionstouchpads (touchpad-windows-precision-touchpad-collection)

In diesem Thema wird die Sammlung auf oberster Ebene eines Windows Präzisionstouchpads gezeigt und erläutert, wie die Sammlung HID-konforme Touchpadberichterstattung an den Windows-Host bereitstellt.

Ein Windows Precision Touchpad-Gerät kann das HID-Protokoll verwenden, um eine Sammlung der obersten Ebene bereitzustellen, die als Digitizer/Touchpad angezeigt wird (Seite 0x0D, Verwendung 0x05).

Die Windows Precision Touchpad-Sammlung dient dem Zweck, dem Host umfassende Multi-Contact- und Button-Berichte sowie Geräteinformationen bereitzustellen, die sich auf diese Berichte beziehen. Die Sammlung sollte zwei Funktionsberichte unterstützen: einen, der es dem Host ermöglicht, Gerätefunktionen abzurufen, und einen anderen Bericht, um den Zertifizierungsstatus des Geräts abzurufen. Ein Beispiel für den obligatorischen Eingabebericht finden Sie unter Musterberichtsdeskriptoren.

Ein optionaler (aber dringend empfohlener) Feature-Bericht kann implementiert werden, um Hinweise zum Latenzmodus vom Host zu erhalten, um den erforderlichen Stromverbrauch auf USB-Geräten im Ruhemodus zu erreichen. Die folgenden Abschnitte enthalten weitere Informationen zu den Berichten, die in der Sammlung der obersten Ebene für das Windows Precision Touchpad enthalten sind.

Feature-Bericht zu den Gerätefunktionen

Der Featurebericht zu den Gerätefunktionen wird vom Host des Windows Precision Touchpad angefordert, um Informationen über die Kontaktberichtsfunktionen des Geräts und den Typ der Geräteschaltfläche abzurufen.

Die Kontaktmeldefunktion des Geräts wird durch die maximale Anzahl gleichzeitiger Oberflächenkontakte definiert, die es melden kann. Ein Windows Precision Touchpad sollte mindestens 3 gleichzeitige Kontakte und maximal 5 gleichzeitige Kontakte unterstützen. Das Touchpad sollte diesen Wert über das Maximum der Kontaktanzahl (Seite 0x0D, Verwendung 0x55) im Funktionsbericht der Gerätefunktionen melden. Beim Melden von Daten darf ein Gerät nicht mehr Kontakte melden als die maximale Kontaktzahl. Wenn ein Eingabeframe mehr Kontakte als das Maximum enthält, verwirft der Host den gesamten Frame, einschließlich der Daten für zuvor gemeldete Kontakte. Für eine optimale Benutzererfahrung sollte das Gerät die Meldung neuer Kontakte unterdrücken, die erkannt werden, nachdem die maximale Anzahl für die Lebensdauer des neuen Kontakts erreicht wurde, selbst wenn bestehende Kontakte abgehen. Bestehende Kontakte können weiterhin gemeldet werden, und wenn Kontakte ausscheiden, können neu hinzukommende Kontakte ihren Platz einnehmen.

Der Tastentyp des Geräts ist entweder als niederdrückbare Implementierung (auch als Clickpad-Typ bezeichnet) oder als nicht herunterdrückbare Implementierung (auch als Druckpad bezeichnet) definiert. Es ist auch akzeptabel, dass ein Windows Precision Touchpad stattdessen eine Digitizer-Oberfläche ohne Tasten und externe Tasten hat.

Der Schaltflächenimplementierungstyp sollte über den Wert für Schaltflächentyp (Seite 0x0D, Verwendung0x59 ) im Featurebericht zu den Gerätefunktionen angegeben werden. Wenn das Gerät über eine Digitizer-Oberfläche ohne Schaltflächen verfügt und stattdessen nur für Mausklicks auf externe Schaltflächen angewiesen ist, kann diese Verwendung optional gemeldet werden.

Die folgende Tabelle zeigt die Verwendungswerte des Schaltflächentyps.

Wert des Schaltflächentyps Implementierung
0 Drückbar (Click-Pad)
1 Nicht drückbar (Pressure-Pad)
2 Nicht anklickbar (separates Pad)

Der Host kann den Gerätefunktionsfunktionsbericht eines Windows Precision Touchpad jederzeit nach dem Lesen des Berichtsdeskriptors anfordern.

Featurebericht des Gerätezertifizierungsstatus

Der Gerätezertifizierungsstatus-Featurebericht wird vom Host des Windows Precision Touchpad angefordert, um Informationen über das 256-Byte-Blob des Geräts abzurufen.

Das Melden eines gültigen, zertifizierten Blobs an den Host ist unter Windows 10 optional, aber für die Abwärtskompatibilität mit Windows 8.1 erforderlich. Ein Gerät, das kein signiertes PTPHQA-Blob kommuniziert, muss dennoch (beliebige) 256-Bytes melden, wie das Beispiel-Blob unten. Geräte, die kein gültiges Zertifizierungs-Blob melden, funktionieren nicht unter Windows 8.1. Windows interagiert nicht mit Geräten, die die HID-Touchpad-Nutzung verwenden, aber keinen Zertifizierungsstatus in ihrem Feature-Bericht zu den Gerätefunktionen anzeigen.

Die 256 Bytes sollten über die herstellerspezifische Verwendung auf einer herstellerdefinierten Verwendungsseite (Seite 0xFF, Verwendung 0xC5) im Statusfunktionsbericht der Gerätezertifizierung angegeben werden.

Bevor ein Gerät ein 256-Byte-Blob empfängt, das seinen Zertifizierungsstatus angibt, sollte es ein Standard-Blob wie folgt implementieren:

0xfc, 0x28, 0xfe, 0x84, 0x40, 0xcb, 0x9a, 0x87, 0x0d, 0xbe, 0x57, 0x3c, 0xb6, 0x70, 0x09, 0x88, 0x07,
0x97, 0x2d, 0x2b, 0xe3, 0x38, 0x34, 0xb6, 0x6c, 0xed, 0xb0, 0xf7, 0xe5, 0x9c, 0xf6, 0xc2, 0x2e, 0x84,
0x1b, 0xe8, 0xb4, 0x51, 0x78, 0x43, 0x1f, 0x28, 0x4b, 0x7c, 0x2d, 0x53, 0xaf, 0xfc, 0x47, 0x70, 0x1b,
0x59, 0x6f, 0x74, 0x43, 0xc4, 0xf3, 0x47, 0x18, 0x53, 0x1a, 0xa2, 0xa1, 0x71, 0xc7, 0x95, 0x0e, 0x31,
0x55, 0x21, 0xd3, 0xb5, 0x1e, 0xe9, 0x0c, 0xba, 0xec, 0xb8, 0x89, 0x19, 0x3e, 0xb3, 0xaf, 0x75, 0x81,
0x9d, 0x53, 0xb9, 0x41, 0x57, 0xf4, 0x6d, 0x39, 0x25, 0x29, 0x7c, 0x87, 0xd9, 0xb4, 0x98, 0x45, 0x7d,
0xa7, 0x26, 0x9c, 0x65, 0x3b, 0x85, 0x68, 0x89, 0xd7, 0x3b, 0xbd, 0xff, 0x14, 0x67, 0xf2, 0x2b, 0xf0,
0x2a, 0x41, 0x54, 0xf0, 0xfd, 0x2c, 0x66, 0x7c, 0xf8, 0xc0, 0x8f, 0x33, 0x13, 0x03, 0xf1, 0xd3, 0xc1, 0x0b,
0x89, 0xd9, 0x1b, 0x62, 0xcd, 0x51, 0xb7, 0x80, 0xb8, 0xaf, 0x3a, 0x10, 0xc1, 0x8a, 0x5b, 0xe8, 0x8a,
0x56, 0xf0, 0x8c, 0xaa, 0xfa, 0x35, 0xe9, 0x42, 0xc4, 0xd8, 0x55, 0xc3, 0x38, 0xcc, 0x2b, 0x53, 0x5c,
0x69, 0x52, 0xd5, 0xc8, 0x73, 0x02, 0x38, 0x7c, 0x73, 0xb6, 0x41, 0xe7, 0xff, 0x05, 0xd8, 0x2b, 0x79,
0x9a, 0xe2, 0x34, 0x60, 0x8f, 0xa3, 0x32, 0x1f, 0x09, 0x78, 0x62, 0xbc, 0x80, 0xe3, 0x0f, 0xbd, 0x65,
0x20, 0x08, 0x13, 0xc1, 0xe2, 0xee, 0x53, 0x2d, 0x86, 0x7e, 0xa7, 0x5a, 0xc5, 0xd3, 0x7d, 0x98, 0xbe,
0x31, 0x48, 0x1f, 0xfb, 0xda, 0xaf, 0xa2, 0xa8, 0x6a, 0x89, 0xd6, 0xbf, 0xf2, 0xd3, 0x32, 0x2a, 0x9a,
0xe4, 0xcf, 0x17, 0xb7, 0xb8, 0xf4, 0xe1, 0x33, 0x08, 0x24, 0x8b, 0xc4, 0x43, 0xa5, 0xe5, 0x24, 0xc2

Der Host kann den Gerätezertifizierungsstatus-Funktionsbericht eines Windows Precision Touchpad jederzeit anfordern, nachdem er den Berichtsdeskriptor gelesen hat.

Featurebericht des Latenzmodus

Der Latenzmodus-Funktionsbericht wird vom Host an ein Windows Precision Touchpad gesendet, um anzuzeigen, wann eine hohe Latenz für Energieeinsparungen wünschenswert ist, und umgekehrt, wann eine normale Latenz für den Betrieb gewünscht wird. Bei USB-verbundenen Windows Precision Touchpad-Geräten ermöglicht dies dem Gerät zu unterscheiden, ob es wegen Inaktivität angehalten wird (Runtime IDLE) oder angehalten wird, weil das System in S3 oder Connected Standby wechselt.

Der Latenzmodus sollte mit dem Wert für die Verwendung des Latenzmodus (Seite 0x0D, Verwendung 0x60) im Latenzmodus-Funktionsbericht angegeben werden. Die folgende Tabelle zeigt die Nutzungswerte des Latenzmodus.

Latenzmoduswert Latenzmodus
0 Normale Latenz
1 Hohe Latenz

Funktionsbericht zur haptischen Intensität (Optional)

In Windows 11 wurde ein Bericht über die haptische Intensität implementiert, um weitere Funktionen zu bieten, die auf den aktuellen PTPs mit haptischen Aktuatoren aufbauen. Der Funktionsbericht zur haptischen Intensität wird vom Host an ein Windows Precision Touchpad gesendet, um die Intensität des haptischen Feedbacks für das Touchpad einzustellen. Für diesen optionalen Funktionsbericht muss ein Gerät einen SimpleHapticsController (Seite 0x09, Verwendung 0x01) melden, der eine SET_FEATURE mit einer einzigen globalen Intensität (Seite 0x09, Verwendung 0x23) bereitstellt.

Einen Beispieldeskriptor finden Sie unter Beispielberichtsdeskriptoren.

Funktionsbericht zum Tastendruckschwellenwert (Optional)

In Windows 11, Build 26027+, wurde die Unterstützung für durch Benutzer*innen konfigurierbare Klickkraft über Windows-Touchpadeinstellungen hinzugefügt (auch als Tastendruckschwellenwert bekannt, der Schwellenwert der angewendeten Kraft auf dem Touchpad, um einen Klick/einen Tastendruck zu generieren). Damit ein Präzisionstouchpad dies unterstützt, muss es den SET_FEATURE-Bericht für den einmaligen Tastendruckschwellenwert (Seite 0x0D, Verwendung 0xB0) verarbeiten. Während der Enumeration bewertet der Host den unterstützten logischen und physischen Bereich vom Deskriptor und berechnet die verfügbar gemachten Optionen für die Einstellungsbenutzeroberfläche einschließlich der Standardwerte. Der Host muss das SET_FEATURE ausgeben, um den benutzerdefinierten Tastendruckschwellenwert an das Gerät zu übermitteln. Diese Ausgabe kann jederzeit erfolgen, muss jedoch immer dann auftreten, wenn die Einstellung geändert wird, ein Benutzerwechsel auftritt und wenn das Gerät enumeriert oder zurückgesetzt wird.

Der logische Bereich muss linear dem physischen Wertebereich zugeordnet werden und in gleichmäßigen Abständen um den Standardwert zentriert sein. Beim Abrufen des logischen Bereichs wird der Standardwert mithilfe der folgenden Formel berechnet:

Diagramm mit Formel zur Berechnung des standardmäßigen Tastendruck-Schwellenwerts in logischen Einheiten

Das logische Minimum, der Standard und das logisches Maximum werden 3 unterschiedlichen Ebenen der Tastendruckkraft entsprechen, die Benutzer*innen über die Windows-Einstellungsbenutzeroberfläche verfügbar gemacht werden (unterstützt „Niedrig“, „Mittel“ bzw. „Hoch“).

Der empfohlene physische Bereich für den Tastendruckschwellenwert sollte mindestens den Bereich zwischen 110 g und 190 g abzudecken, was dem Mindest- bzw. Höchstwert entspricht. Für einen Beispieldeskriptor, der ein physisches Maximum von 190g und ein physisches Minimum von 110g verwendet (weshalb basierend auf der obigen Formel der Standardwert 150g sein würde) lesen Sie Beispielberichtsdeskriptoren.

Windows Precision Touchpad-Eingabeberichte

Der Host verwendet die Verwendungen in der folgenden Tabelle beim Extrahieren von Kontaktdaten aus einem Eingabebericht über die Windows Precision Touchpad-Sammlung. Die Tabelle enthält alle obligatorischen Verwendungen und die unterstützten optionalen Verwendungen in Bezug auf jeden eindeutigen Digitizer-Kontakt, der gemeldet wird.

Member BESCHREIBUNG Seite ID Obligatorisch/Optional
Kontakt-ID Identifiziert den Kontakt innerhalb eines bestimmten Frames eindeutig. 0x0D 0x51 Obligatorisch.
X X-Koordinate der Kontaktposition. 0x01 0x30 Obligatorisch.
J Y-Koordinate der Kontaktposition. 0x01 0x31 Obligatorisch.
Tipp Gesetzt, ob sich der Kontakt auf der Oberfläche des Digitizers befindet. 0x0D 0x42 Obligatorisch.
Confidence Gesetzt, wenn ein Kontakt zu groß für einen Finger ist. 0x0D 0x47 Obligatorisch.
Width Breite des Begrenzungsrahmens um einen Kontakt. 0x0D 0x48 Optional
Height Höhe des Begrenzungsrahmens um einen Kontakt. 0x0D 0x49 Optional
Luftdruck Die Menge des Drucks, den der Benutzer auf den Kontaktpunkt anwendet. 0x0D 0x30 Optional
Azimut Die Drehung des Kontakts um die Z-Achse gegen den Uhrzeigersinn. 0x0D 0x3F Optional

Die folgende Tabelle enthält alle Verwendungen auf oberster Ebene, die in allen Berichten zur Windows-Präzisionstouchpadeingabe vorhanden sein sollten.

Member BESCHREIBUNG Seite ID Obligatorisch/Optional
Überprüfungszeit Relative Scanzeit. 0x0D 0x56 Obligatorisch.
Kontaktanzahl Gesamtanzahl der Kontakte in einer Meldung 0x0D 0x54 Obligatorisch.
Mechanische Kraft Gesamtkraft, die auf den Touchpadsensor angewendet wird. 0x20 0x494 Optional
Taste 1 Zeigt den Schaltflächenstatus für die Touchpad-Schaltfläche an, die in den Digitizer integriert ist. 0x09 0x01 Optional
Taste 2 Gibt den Status einer externen Taste für die primäre Tastenfunktion an (standardmäßig Linksklick). 0x09 0x02 Optional
Taste 3 Gibt den Status einer externen Taste für die sekundäre Tastenfunktion an (standardmäßig Rechtsklick). 0x09 0x03 Optional

Jedes Gerät, das nicht alle obligatorischen Nutzungen auf Kontakt- oder Berichtsebene meldet, funktioniert nicht als Windows Precision Touchpad. Die obligatorischen Verwendungen werden vom Windows-Host streng erzwungen. Wenn ein logischer Maximalwert nicht eingeschränkt wurde, kann der Wert optimiert werden, um die Deskriptorgröße zu reduzieren.

Die folgenden Abschnitte enthalten Informationen zu den Mitgliedern in den Berichten. Informationen zu den Button-Mitgliedern finden Sie unter Buttons, Report Level Usages.

Kontakt-ID

Identifiziert einen Kontakt in einem Bericht für seinen Lebenszyklus eindeutig. Die Kontakt-ID muss konstant bleiben, während der Kontakt vom Gerät erkannt und gemeldet wird. Jeder separate gleichzeitige Kontakt muss über einen eindeutigen Bezeichner verfügen. Identifikatoren können wiederverwendet werden, sobald der zuvor zugeordnete Kontakt nicht mehr erkannt oder gemeldet wird. Es gibt keinen erwarteten numerischen Bereich und die verwendeten Werte sind nur durch das angegebene logische Maximum im Deskriptor begrenzt.

X/Y

Die X- und Y-Werte geben die Koordinaten eines bestimmten Kontakts an. Ein Windows Precision Touchpad sollte einen Punkt für jeden Kontakt melden. Die folgenden globalen Elemente sollten sowohl für die X- als auch für die Y-Verwendung angegeben werden:

  • Logisches Minimum und Maximum (wobei eine Eingangsauflösung von mindestens 300 dpi gewährleistet ist)

    Hinweis: Der gesamte logische Koordinatenbereich sollte sowohl über die X- als auch über die Y-Achse gemeldet werden können.

  • Physisches Minimum und Maximum (siehe Geräteintegration – Größe)

  • Einheit und Exponent der Einheit

  • Die Koordinate 0,0 (x, y-Werte) zeigt die linke obere Ecke des Touchpads an.

Tipp

Wird verwendet, um anzuzeigen, wenn sich der Kontakt auf der Oberfläche befindet oder die Oberfläche des Digitizers verlassen hat. Dies wird durch ein Hauptelement mit einer Berichtgröße von 1 Bit angegeben. Bei der Übermittlung eines Kontaktberichts sollte das Bit gesetzt werden, wenn sich der Kontakt auf der Digitizer-Oberfläche befindet und gelöscht werden, wenn der Kontakt die Oberfläche verlassen hat.

Wenn ein Kontakt bei freiem Tippschalter gemeldet wird, sollte die gemeldete (X, Y)-Position dieselbe sein wie die letzte gemeldete Position mit gesetztem Tippschalter.

 Das Diagramm zeigt zwei Kontakte, die mit einem Windows-Präzisions-Touchpad interagieren und wobei die Kontakte angehoben werden, um die Touchpad-Oberfläche zu unterschiedlichen Zeiten zu verlassen.

Unter Bezugnahme auf das im vorstehenden Diagramm skizzierte Beispiel werden zwei Kontakte auf einem Windows Precision Touchpad platziert, dann wird einige Zeit später der erste Kontakt abgehoben, während der zweite noch einige Zeit auf der Oberfläche verbleibt. Dies würde gemeldet wie in der folgenden Tabelle beschrieben.

Bericht 1 2 3 4 5 6 7 8 9 10 11
Kontaktanzahl 2 2 2 2 2 2 1 1 1 1 1
Kontakt 1: Spitzenschalter 1 1 1 1 1 0 NR NR NR NR NR
Kontakt 1: X, Y X₁, Y₁ X₂, Y₂ X₃, Y₃ X₄, Y₄ X₅, Y₅ X₆, Y₆ NR NR NR NR NR
Kontakt 2: Spitzenschalter 1 1 1 1 1 1 1 1 1 1 0
Kontakt 2: X, Y X₁, Y₁ X₂, Y₂ X₃, Y₃ X₄, Y₄ X₅, Y₅ X₆, Y₆ X₇, Y₇ X₈, Y₈ X₉, Y₉ X₁₀, Y₁₀ X₁₁, Y₁₁

Confidence

Wird verwendet, um anzuzeigen, dass der Kontakt beabsichtigt ist. Kompatibilitätsanforderungstest, um sicherzustellen, dass dieses Bit auf „Aus“ gesetzt ist, wenn ein Kontakt Abmessungen (Höhe oder Breite) von mehr als 25 mm aufweist, was impliziert, dass es sich nicht um einen unbeabsichtigten Kontakt handelt. Windows Precision Touchpad-Geräte sollten keine Kontakte in der Firmware-Verarbeitung verbergen, sondern alle Kontakte an den Host weiterleiten und das Vertrauen anzeigen. Der Host verwendet dann Vertrauen, um den Kontakt als zufällig zu verfolgen.

Sobald ein Gerät festgestellt hat, dass ein Kontakt unbeabsichtigt ist, sollte es das Vertrauensbit für diesen Kontaktbericht und alle nachfolgenden Berichte löschen. Bis ein Kontakt als unbeabsichtigt kategorisiert wurde, sollte das Gerät das Vertrauensbit für diesen Kontakt im Bericht setzen.

Breite und Höhe

Die Verwendungen „Breite“ und „Höhe“ stellen die Breite und Höhe des Begrenzungsrahmens um den Touchpadkontakt dar. Die gemeldeten Werte sollten niemals null (0) sein, außer wenn ein "UP"-Ereignis gemeldet wird, in welchem Fall sie null (0) sein sollten.

Druck

Druck ist eine Messung der Kraft, die der Finger gegen die Digitizer-Oberfläche ausübt. Es gibt keine Einschränkungen des für Druck zulässigen Wertebereichs.

Azimut

Azimut gibt die dem Uhrzeigersinn entgegengesetzte Drehung des Cursors um Z-Achse im Bereich eines vollständigen Kreises an. Der physische Bereich und der logische Bereich müssen spezifiziert werden. Der physische Bereich muss 0 bis 360 oder ein gleichwertiges Bogenmaß sein, aber das Gerät kann entweder den vollständigen Bereich oder die Hälfte des Bereichs melden, vorausgesetzt, die Kontaktellipse ist symmetrisch, was von den Möglichkeiten der Hardware abhängt. Der logische Bereich muss groß genug sein, um Daten bereitzustellen, die auf mindestens zwei Dezimalstellen genau sind.

Überprüfungszeit

Scan Time gibt die relative Digitizer-Zeit in Einheiten von 100 µs an. Die Scan-Zeit stellt das Delta vom ersten Frame dar, der gemeldet wurde, nachdem ein Gerät nach einem Zeitraum der Inaktivität mit dem Melden von Daten begonnen hat. Die erste empfangene Scanzeit wird als Basiszeit für nachfolgende gemeldete Zeiten behandelt. Die Deltas zwischen gemeldeten Scanzeiten sollten die Scanfrequenz des Digitizers widerspiegeln. Es ist wichtig zu beachten, dass im Gegensatz zu anderen Verwendungen der Host keine Flexibilität für die Einheit der Scanzeit-Verwendung zulässt. Es muss sich um Einheiten von 100 µs handeln. Da dem Zähler nur 2 Byte Speicher zugeordnet sind, wird erwartet, dass der Wert von Rollovern betroffen ist.

Der Scanzeitwert sollte innerhalb eines Frames für alle Kontakte identisch sein.

Kontaktanzahl

Dies wird verwendet, um die Anzahl der Kontakte anzugeben, die in einem bestimmten Frame gemeldet werden, unabhängig von ihrem zugehörigen Tipp-Schalter.

Mechanische Kraft

Dies wird verwendet, um die Gesamtkraft zu melden, die auf den Touchpadsensor angewendet wird, unabhängig vom optionalen Druck, der für einzelne Finger gemeldet werden kann. Wenn auch Druck für einzelne Kontakte gemeldet wird, müssen die Einheiten, die Exponenten der Einheiten, der physikalische Bereich und der logische Bereich für Druck und mechanische Kraft identisch sein, und der Wert für mechanische Kraft muss = SUMME(Druck für Kontakt 1 + Druck für Kontakt 2 + .... usw.) sein, unabhängig vom Konfidenzbit für jeden dieser Kontakte.

Schaltflächen, Verwendungsmöglichkeiten auf Berichtsebene

Beispiel für Berichtsdeskriptoren