Freigeben über


Erforderliche HID-Sammlung auf oberster Ebene (required-hid-top-level-collections)

In diesem Artikel werden die erforderlichen HID-Sammlungen der obersten Ebene erläutert, die für die Kommunikation mit Touchscreens in Windows 10 und späteren Betriebssystemen verwendet werden.

Ein integriertes Windows-Stiftgerät muss mindestens eine Sammlung der obersten Ebene für das Melden von Stiftereignissen verfügbar machen. Es kann zusätzlich eine optionale (aber empfohlene) Sammlung für Firmware-Updates implementiert werden. Auf Betriebssystemen vor Windows 10 kann auch eine optionale (Dummy-)Maussammlung für die Unterstützung des Stiftcursors implementiert werden.

Das folgende Diagramm zeigt die HID-Sammlungen für ein Windows-Stiftgerät.

Diagramm der HID-Sammlungen für ein integriertes Windows-Stiftgerät. Die Abbildung zeigt die Unterstützung für eine anbieterspezifische Firmwareupdatesammlung.

Maussammlung (Dummy)

Ein integriertes Windows-Stiftgerät kann das HID-Protokoll verwenden, um eine Sammlung auf oberster Ebene bereitzustellen, die als generischer Desktop oder generische Maus angezeigt wird (Seite 0x01, Verwendung 0x02).

Die (Dummy-)Maussammlung eines integrierten Windows-Stiftgeräts dient zum Bereitstellen des Hosts mit einem HID-kompatiblen Mausgerät für die Anzeige eines Cursors auf Betriebssystemen vor Windows 10. Es sind keine tatsächlichen Mausmeldungen aus dieser Sammlung erforderlich, sondern lediglich die Anwesenheit der Maussammlung im Deskriptor. Wenn Sie keine Betriebssysteme vor Windows 10 unterstützen müssen, kann diese Sammlung weggelassen werden.

Integrierte Windows-Stiftsammlung

Ein integriertes Windows-Stiftgerät sollte das HID-Protokoll auf einem Windows 10-System so verwenden, dass das Gerät eine Sammlung auf oberster Ebene bereitstellt, die den Digitalisierer/integrierten Stift (Seite 0x0D, Verwendung 0x02) darstellt.

Die integrierte Windows-Stiftsammlung dient dem Zweck, dem Host umfassende Kontakt-, Druck-, Lösch- und Tastenmeldungen bereitzustellen. Die Sammlung kann optional einen Featurebericht unterstützen, um den Zertifizierungsstatus des Geräts abzurufen. Die obligatorische Eingabemeldung wird ausführlich im Abschnitt Eingabemeldungen integrierter Windows-Stiftgeräte dieses Themas beschrieben. Eine optionaler (aber dringend empfohlener) Featurebericht kann implementiert werden, um Hinweise zum Latenzmodus vom Host abzurufen. Dieses optionale Feature kann dazu beitragen, einen minimalen Stromverbrauch von USB-Geräten zu erzielen, die für die Aktivierung im Ruhemodus konzipiert sind.

Featurebericht des Gerätezertifizierungsstatus

Wenn Sie den Featurebericht zum Zertifizierungsstatus des Geräts implementieren, kann der Host des integrierten Windows-Stiftgeräts damit das 256-Byte-Blob des Geräts abrufen.

Die 256 Bytes sollten über eine anbieterspezifische HID-Verwendung in einer vom Anbieter definierten Verwendungsseite (Seite 0xFF, Verwendung 0xC5) im Featurebericht zum Gerätezertifizierungsstatus angegeben werden.

Bevor ein Gerät ein 256-Byte-Blob empfängt, das seinen Zertifizierungsstatus angibt, sollte es wie folgt ein Standardblob 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 Featurebericht zum Gerätezertifizierungsstatus eines integrierten Windows-Stiftgeräts jederzeit anfordern, nachdem er den Meldedeskriptor gelesen hat.

Featurebericht des Latenzmodus

Hinweis

Windows 10 Version 1511 und frühere Betriebssysteme melden derzeit diesen HID-Featurebericht nicht an Stift- oder Touchscreengeräte, die dieses Feature unterstützen. Wenn Sie jedoch Unterstützung für den Featurebericht des Latenzmodus in einem Gerät implementieren, ist es bereit für die Zukunft, wenn Windows ihn auf Stift- und Touchscreengeräten unterstützen wird.

Der Featurebericht zum Latenzmodus wird vom Host an ein Windows-Stiftgerät gesendet, um anzugeben, wenn für Stromeinsparungen eine hohe Latenz wünschenswert ist und umgekehrt, wenn die normale Latenz für den Betrieb gewünscht wird. Bei per USB angeschlossenen Windows-Stiftgeräten kann das Gerät so unterscheiden, ob es wegen Inaktivität angehalten wird (Runtime IDLE) oder weil das System in den S3- oder verbundenen Standbymodus versetzt wird.

Der Latenzmodus sollte über den Wert für die Latenzmodusverwendung (Seite 0x0D, Verwendung 0x60) in dem Featurebericht des Latenzmodus angegeben werden.

Latenzmoduswert Latenzmodus
0 Normal
1 High

Eingabemeldungen integrierter Windows-Stiftgeräte

Die Verwendungen in der folgenden Tabelle werden vom Host verwendet, um Stiftdaten aus einer Eingabemeldung über die integrierte Windows-Stiftsammlung zu extrahieren. Die Tabelle zeigt alle obligatorischen Verwendungen und die von Windows unterstützten optionalen Verwendungen für Meldungen zum Stift.

Member BESCHREIBUNG Seite ID Obligatorisch/Optional Erforderlich für HLK
X X-Koordinate der Kontaktposition 0x01 0x30 Obligatorisch. Ja
J Y-Koordinate der Kontaktposition 0x01 0x31 Obligatorisch. Ja
Tipp Festgelegt, wenn sich der Stift auf der Oberfläche des Digitalisierers befindet 0x0D 0x42 Obligatorisch. Yes
Im Bereich Gibt an, ob sich der Stift im Bereich des Digitalisierers befindet 0x0D 0x32 Obligatorisch. Yes
Drucktaste Status der Taste an der Seite des Stifts 0x0D 0x44 Obligatorisch. Yes
Invertierung Gibt an, dass die Ausrichtung des Stifts die Absicht zum Löschen impliziert 0x0D 0x3C Optional Ja
Radierer Gibt an, dass der Stift einen Löschvorgang ausführt 0x0D 0x45 Optional Ja
Tippdruck Der auf die Stiftspitze ausgeübte Druck 0x0D 0x30 Optional Ja
Überprüfungszeit Relative Scanzeit pro Frame 0x0D 0x56 Optional Nein
X-Neigung Der Neigungswinkel des Stifts entlang der x-Achse 0x0D 0x3D Optional Nein
Y-Neigung Der Neigungswinkel des Stifts entlang der y-Achse 0x0D 0x3E Optional Nein
Twist Drehung des Stifts im Uhrzeigersinn 0x0D 0x41 Optional Nein
Seriennummer des Wandlers Eindeutiger persistenter Bezeichner für den Messwandler 0x0D 0x5B Optional No
Seriennummer des Wandlers - Teil 2 Wird verwendet, um die Seriennummer des Wandlers um zusätzliche 32 Bits zu erweitern. 0x0D 0x6E Optional Nein
Hersteller-ID des Wandlers Der zugewiesene Bezeichner für den Anbieter des Messwandlers 0x0D 0x91 Optional Nein

In der folgenden Tabelle werden die obligatorischen Verwendungen auf Meldeebene für integrierte Windows-Stifteingabemeldungen aufgeführt.

Member BESCHREIBUNG Seite ID Obligatorisch/Optional
Berichts-ID Melde-ID des integrierten Windows-Stiftgeräts 0x0D 0x02 Obligatorisch.

Obligatorische und von Windows unterstützte optionale Verwendungen

Geräte, die nicht alle obligatorischen Verwendungen auf Kontakt- oder Meldeebene angeben, sind als integriertes Windows-Stiftgerät nicht funktionsfähig. Die obligatorischen Verwendungen werden vom Windows-Host streng erzwungen. Wenn kein logischer Maximalwert festgelegt wurde, kann der Wert optimiert werden, um die Deskriptorgröße zu verringern.

Die folgenden Abschnitte enthalten weitere Details zu den obligatorischen und den von Windows unterstützten optionalen Verwendungen, die in einer der obigen Tabellen dargestellt wurden.

X, Y

X und Y melden die Koordinaten des integrierten Stifts. Die folgenden globalen Elemente müssen für die X- und Y-Verwendungen angegeben werden:

  • Physisches Minimum und physisches Maximum

  • Unit & Unit Exponent

  • Logisches Minimum und logisches Maximum (sicherstellen einer Eingabeauflösung >= 150DPI)

    Hinweis: Der gesamte logische Koordinatenbereich sollte sowohl auf der X- als auch auf der Y-Achse meldefähig sein.

Stiftspitze

Dient zum Ermitteln, ob sich die Stiftspitze auf der Oberfläche befindet oder die Oberfläche des Digitalisierers verlassen hat. Dies wird durch ein Hauptelement mit einer Berichtgröße von 1 Bit angegeben. Bei der Übermittlung einer Eingabemeldung sollte das Bit festgelegt werden, wenn sich der Stift auf der Oberfläche des Digitalisierers befindet, und gelöscht werden, wenn der Stift die Oberfläche verlassen hat.

Wenn ein Stift zum ersten Mal in einem Meldedatenstrom mit gelöschtem Tippschalter gemeldet wird, sollte die gemeldete X/Y-Position identisch mit der letzten gemeldeten Position sein, bei der der Tippschalter festgelegt war.

Im Bereich

Gibt an, wann sich die Stiftspitze (oder der Radierer) im Bereich des Digitalisierers befindet. Dies wird durch ein Hauptelement mit einer Berichtgröße von 1 Bit angegeben. Bei der Übermittlung einer Eingabemeldung sollte das Bit festgelegt werden, wenn sich die Stiftspitze (oder der Radierer) auf der Oberfläche des Digitalisierers oder innerhalb des erkennbaren Bereichs des Digitalisierungsgeräts befindet, und gelöscht werden, wenn der Stift nicht mehr erkannt wird. Beachten Sie, dass „Im Bereich“ nur gemeldet werden sollte, wenn die X/Y-Position des Stifts zuverlässig gemeldet werden kann und innerhalb der Parameter liegt, die von den HLK-Anforderungen für Stiftgeräte unter Windows 10 festgelegt werden.

Wenn ein Stift im Bereich gemeldet wird und der Schalter „Im Bereich“ gelöscht ist, sollte die gemeldete X/Y-Position identisch mit der letzten Position sein, die beim Festlegen des Schalters „Im Bereich“ gemeldet wurde.

Drucktaste

Gibt an, wann die Taste an der Seite des Stifts gedrückt wird. Dies wird durch ein Hauptelement mit einer Berichtgröße von 1 Bit angegeben. Beim Liefern eines Eingabeberichts sollte das Bit gesetzt werden, wenn diese Taste gedrückt wird, und gelöscht werden, wenn die Taste losgelassen wird.

Invertierung

Gibt an, dass die Ausrichtung des Stifts die Absicht zum Löschen impliziert. Dies wird durch ein Hauptelement mit einer Berichtgröße von 1 Bit angegeben. Im Folgenden finden Sie einige Richtlinien für Eingabemeldungen für verschiedene Radiererimplementierungen:

  • Implementierungen für Radierer am Stiftende

    Bei der Übermittlung einer Eingabemeldung sollte das Bit festgelegt werden, wenn der Stift umgedreht wird, und gelöscht werden, wenn der Stift nicht umgedreht ist.

  • Implementierungen für Radierertasten

    Bei der Übermittlung einer Eingabemeldung sollte das Bit festgelegt werden, wenn die Radierertaste gedrückt ist und sich der Stift im Bereich des Digitalisierers befindet, und andernfalls gelöscht werden.

Radierer

Gibt an, wann der Stift einen Löschvorgang ausführt. Dies wird durch ein Hauptelement mit einer Berichtgröße von 1 Bit angegeben. Im Folgenden finden Sie einige Richtlinien für Eingabemeldungen für verschiedene Radiererimplementierungen:

  • Implementierungen für Radierer am Stiftende

    Bei der Übermittlung einer Eingabemeldung sollte das Bit festgelegt werden, wenn der Stift umgedreht in Kontakt mit dem Bildschirm ist, und andernfalls gelöscht werden.

  • Implementierungen für Radierertasten

    Bei der Übermittlung einer Eingabemeldung sollte das Bit festgelegt werden, wenn die Radierertaste gedrückt ist und die Stiftspitze in Kontakt mit dem Bildschirm ist, und andernfalls gelöscht werden.

    Um das versehentliche Aktivieren oder Abbrechen der Löschfunktion in dieser Implementierung zu vermeiden, wird dringend empfohlen zu verhindern, dass das Drücken oder Loslassen der Löschtaste Auswirkungen auf die Meldung des Radierer-Bits hat, solange die Stiftspitze mit dem Bildschirm in Kontakt steht.

Wenn ein Stift zum ersten Mal in einem Meldedatenstrom mit gelöschtem Löschschalter gemeldet wird, sollte die gemeldete X/Y-Position identisch mit der letzten gemeldeten Position sein, bei der der Löschschalter festgelegt war.

Überprüfungszeit

Scanzeit meldet die relative Digitizer-Zeit in Einheiten von 100 μs. Wenn ein Gerät nach einem Zeitraum der Inaktivität mit dem Senden von Meldedaten beginnt, stellt die Scanzeit den Zeitraum vom ersten gemeldeten Frame bis zum Zeitpunkt der Meldung dar. Die erste empfangene Scanzeit wird als Basiszeit für nachfolgende gemeldete Zeiten behandelt. Die Zeit zwischen gemeldeten Scanzeiten sollte die Scanfrequenz des Digitalisierers widerspiegeln. Beachten Sie unbedingt, dass im Gegensatz zu anderen Verwendungen der Host keine Flexibilität für die Einheit der Scanzeit-Verwendung zulässt, wenn sie implementiert wurde. 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.

Tippdruck

Gibt den Druck an, der auf die Spitze des Stifts ausgeübt wird. Dies wird durch ein Hauptelement mit einer Meldungsgröße von mindestens 8 Bit angegeben, um mindestens 256 verschiedene Druckstufen zu ermöglichen. Für Meldungen mit einer höheren Granularität müssen Sie eine größere Meldungsgröße verwenden.

Die logischen Werte des gemeldeten Drucks sollten so nah wie möglich an der idealen logarithmische Kurve sein, die im folgenden Diagramm dargestellt wird. Die Drucktests, die von der HLK-Testsuite für Stiftgeräte unter Windows 10 bereitgestellt werden, sind so konzipiert, dass die gemeldete Druckkurve innerhalb der oberen und unteren Grenzen liegt, die im Diagramm angegeben sind. Die ideale Kurve im Diagramm und die zugehörigen Formeln für stehen für ein Gerät mit 256 Stufen, sie können aber skaliert werden, um eine beliebige Anzahl von einzelnen Stufen zu berücksichtigen.

Da der Radiererschalter auf Stiften mit Radierern am Stiftende aktiv ist, aber keine Druckerkennungsfunktionen bereitstellt, sollte als Druck auf die Stiftspitze 127 (50 % des maximalen Drucks) gemeldet werden. Dieser Wert wurde ausgewählt, um Stifte und Apps zu unterstützen, die den tatsächlichen Druck mit dem Stiftende nutzen, während der Radiererschalter aktiv ist.

Diagramm der idealen Kurve für den Druck auf die Stiftspitze für ein Gerät mit 256 Druckstufen

X-Neigung

Die X-Neigung stellt den Ebenenwinkel zwischen der Y-Z-Ebene und der Ebene dar, die die Achse des Messwandlers und die Y-Achse enthält.

Abbildung eines Stifts mit einer positiven X-Neigung

Der physische Bereich und der logische Bereich müssen spezifiziert werden. Der physische Bereich kann maximal –90 oder 90 ° betragen. Das im Deskriptor gemeldete physische Minimum/Maximum sollte jedoch der tatsächlichen minimal bzw. maximal erreichbaren X-Neigung des Stifts entsprechen und die richtige Einheit aufweisen (0x14, Grad). Der logische Bereich muss groß genug sein, um Daten bereitzustellen, die auf mindestens zwei Dezimalstellen genau sind. Für den physischen Bereich können auch Bogenmaße verwendet werden. Die X-Neigung ist positiv, wenn der Stift in der natürlichen Ausrichtung des Digitalisierers aus Sicht der Benutzer*innen nach rechts geneigt ist.

Y-Neigung

Die Y-Neigung stellt den Ebenenwinkel zwischen der X-Z-Ebene und der Ebene dar, die die Achse des Messwandlers und die Y-Achse enthält.

Abbildung eines Stifts mit einer negativen Y-Neigung

Der physische Bereich und der logische Bereich müssen spezifiziert werden. Der physische Bereich kann maximal –90 oder 90 ° betragen. Das im Deskriptor gemeldete physische Minimum/Maximum sollte jedoch der tatsächlichen minimal bzw. maximal erreichbaren Y-Neigung des Stifts entsprechen und die richtige Einheit aufweisen (0x14, Grad). Der logische Bereich muss groß genug sein, um Daten bereitzustellen, die auf mindestens zwei Dezimalstellen genau sind. Für den physischen Bereich können auch Bogenmaße verwendet werden. Die Y-Neigung ist positiv, wenn der Stift in der natürlichen Ausrichtung des Digitalisierers in Richtung der Benutzer*innen geneigt ist.

Twist

Twist stellt die Drehung des Stifts im Uhrzeigersinn um die eigene Hauptachse dar.

Der physische Bereich und der logische Bereich müssen spezifiziert werden. Der physische Bereich muss 0 bis 360 sein. Der logische Bereich muss groß genug sein, um Daten bereitzustellen, die auf mindestens zwei Dezimalstellen genau sind. Für den physikalischen Bereich können auch Bogenmaße verwendet werden. In diesem Fall muss der logische Bereich groß genug sein, um Werte zu melden, die auf mindestens vier Dezimalstellen genau sind.

Seriennummer des Wandlers

Die Wandlerseriennummer ist eine eindeutige dauerhafte Kennung für den Wandler, der im Stiftzubehör verwendet wird, das mit dem Stiftdigitalisierer kommuniziert. Dies muss 32 Bit sein und wird vom Anbieter oder der Entität definiert, die durch die Hersteller-ID des Wandlers identifiziert wird. In Fällen, in denen die Seriennummer des Wandlers dem Digitalisierungsgerät nicht bekannt ist, weil das Stiftzubehör diesen Wert nicht unterstützt oder dass die Übertragung nicht vollständig empfangen wurde, meldet der Digitalisierungsgerät 0 an den Host. Nullposition wird vom Host nicht unterstützt.

Seriennummer des Wandlers – Teil 2

Seriennummer des Wandlers – Teil 2 ermöglicht die Angabe zusätzlicher 32-Bit-Bits als Teil des eindeutigen persistenten Bezeichners für den in einem Stiftzubehör verwendeten Wandler. In Fällen, in denen die Seriennummer der Wandler – Teil 2 dem Digitalisierungsgerät nicht bekannt ist, entweder weil das Stiftzubehör die Übertragung dieses Werts nicht unterstützt oder dass die Übertragung nicht vollständig empfangen wurde, meldet der Digitalisierungsgerät 0 an den Host. Nullposition wird vom Host nicht unterstützt.

Hersteller-ID des Wandlers

Die Hersteller-ID des Wandlers ist ein Feld zum Kommunizieren des Herstellers des Wandlers, der in dem Stiftzubehör verwendet wird, das mit dem Stiftdigitalisierer kommuniziert. Dies muss eine 2-Byte-USB-IF-zugewiesene Anbieter-ID entweder des Herstellers oder der IHV/OEM sein, die die Verwendung ihrer USB-IF-Anbieter-ID für diesen Zweck autorisiert.