Windows Precision Touchpad Collectie (touchpad-windows-precision-touchpad-collection)

In dit onderwerp wordt de bovengelegen verzameling van een Windows Precision Touchpad besproken en wordt uitgelegd hoe deze verzameling HID-compatibele touchpad-rapportage biedt aan een Windows-host.

Een Windows Precision Touchpad-apparaat kan het HID-protocol gebruiken om een verzameling op het hoogste niveau te bieden die wordt weergegeven als een digitalisator/touchpad (Pagina 0x0D, Gebruik 0x05).

De Windows Precision Touchpad-verzameling is bedoeld voor uitgebreide rapportage met meerdere contactpersonen en knoppen aan de host, evenals apparaatgegevens die betrekking hebben op deze rapporten. De verzameling moet twee functierapporten ondersteunen: een rapporten waarmee de host apparaatmogelijkheden kan verkrijgen en een ander rapport om de certificeringsstatus van het apparaat te verkrijgen. Zie Voorbeeldrapportdescriptors voor een voorbeeld van het verplichte invoerrapport.

Een optioneel (maar sterk aanbevolen) functierapport kan worden geïmplementeerd om latentiemodushints van de host te verkrijgen om het vereiste energieverbruik op USB-apparaten in de slaapstand te bereiken. De volgende onderdelen bieden meer informatie over de rapporten die zijn opgenomen in de bovenliggende verzameling voor de Windows Precision Touchpad.

Haptische touchpads

Een haptische touchpad is een Windows Precision Touchpad die gebruikmaakt van een haptische aandrijving (zoals een lineaire resonant actuator of piëzo-elektrische motor) om het gevoel van een mechanische klik te simuleren in plaats van te vertrouwen op een fysiek bewegend scharniermechanisme. Omdat er geen mechanische duikplank of scharnierende knopassembly is, blijft het touchpadoppervlak stationair; klikfeedback wordt volledig geleverd via nauwkeurig gecontroleerde trillingen.

Belangrijke verschillen van mechanische touchpads:

  • Geen bewegende onderdelen: mechanische touchpads maken gebruik van een scharnierend oppervlak of koepelschakelaar die fysiek deprimeert wanneer de gebruiker klikt. Haptic touchpads hebben een stijf, niet-bewegend oppervlak en produceren klikfeedback via trillingen.
  • Uniform klikgevoel: Op een mechanische touchpad varieert de klikkracht en het gevoel, afhankelijk van waar de gebruiker drukt (meestal stijfer in de buurt van het scharnier aan de bovenkant). Haptic touchpads leveren consistente feedback, ongeacht de locatie van de pers.
  • Software-configureerbare feedback: de intensiteit en het karakter van het haptische klikantwoord kunnen door de host worden aangepast, waardoor de door de gebruiker configureerbare kliksterkte en ondersteuning voor verschillende golfvormpatronen mogelijk is.
  • Dunnere vormfactor: Het elimineren van de mechanische scharnierassemblage maakt dunnere apparaatontwerpen mogelijk.

Haptic touchpads ondersteunen twee modi van haptische feedback:

  • Door het apparaat geïnitieerde haptische feedback: de touchpad activeert autonoom haptische feedback wanneer wordt bepaald dat de gebruiker de surface-knop heeft ingedrukt of losgelaten. Dit vervangt de fysieke kliksensatie van een mechanische touchpad. Het apparaat kan eventueel SET_FEATURE rapporten van de host accepteren, zodat de gebruiker de intensiteit van de feedback kan aanpassen en de kracht die nodig is om een knop te activeren.
  • Host geïnitieerde haptische feedback: de Windows host verzendt uitvoerrapporten naar de touchpad om haptische feedback op aanvraag te activeren, onafhankelijk van knopdrukken. Dit maakt uitgebreidere toepassingsgestuurde ervaringen mogelijk, zoals aanwijspulsen, uitlijningsfeedback en stapbevestigingen met behulp van een gedefinieerde set golfvormen.

Zie de implementatiehandleiding voor input device haptics voor volledige protocoldetails, waveform-definities, voorbeelddescriptors en richtlijnen voor hardware-implementatie.

Functie- en mogelijkhedenrapport voor apparaten

Het rapport over de functiefuncties van het apparaat wordt aangevraagd door de host van de Windows Precision Touchpad om informatie op te halen over de rapportagemogelijkheden voor contactpersonen van het apparaat en het type apparaatknop.

De contactrapportagemogelijkheid van het apparaat wordt gedefinieerd door het maximale aantal gelijktijdige oppervlaktecontacten dat het kan rapporteren. Een Windows Precision Touchpad moet minimaal 3 gelijktijdige contactpersonen en maximaal 5 gelijktijdige contactpersonen ondersteunen. De touchpad moet deze waarde rapporteren via het Maximum aantal contacten (Pagina 0x0D, Gebruik 0x55) in het functie rapport voor apparaatcapaciteiten. Tijdens het rapporteren van gegevens mag een apparaat niet meer contactpersonen rapporteren dan het maximumaantal contactpersonen. Als een invoerframe meer contactpersonen bevat dan het maximum, wordt het hele frame door de host verwijderd, inclusief de gegevens voor eerder gerapporteerde contactpersonen. Voor de beste gebruikerservaring moet het apparaat de rapportage onderdrukken van nieuwe contactpersonen die zijn gedetecteerd nadat het maximum aantal is bereikt voor de levensduur van de nieuwe contactpersoon, zelfs als bestaande contactpersonen vertrekken. Bestaande contactpersonen kunnen nog steeds worden gerapporteerd en als er een vertrek is, kunnen nieuwe binnenkomende contactpersonen hun plaats innemen.

Het knoptype van het apparaat wordt gedefinieerd als een indrukbare implementatie (ook wel click-padtype genoemd) of een niet-indrukbare implementatie (ook wel drukpad genoemd). Het is ook acceptabel dat een Windows Precision Touchpad een aanraakgevoelig oppervlak zonder knoppen heeft en in plaats daarvan externe knoppen gebruikt.

Het implementatietype van de knop moet worden opgegeven via de waarde voor het knoptype (Pagina 0x0D, Gebruik 0x59) in het functierapport voor apparaatmogelijkheden. Als het apparaat een niet-knop digitaliseeroppervlak heeft en in plaats daarvan alleen voor muisklikken afhankelijk is van externe knoppen, kan dit gebruik optioneel worden gerapporteerd.

In de volgende tabel ziet u de gebruikswaarden van het knoptype.

Waarde van knoptype Implementation
0 Inklikbaar (Klik-pad)
1 Niet-indrukbaar (drukplaat)
2 Niet-klikbaar (discrete pad)

De host kan op elk gewenst moment het functierapport over apparaatmogelijkheden van een Windows Precision Touchpad aanvragen nadat de rapportdescriptor is gelezen.

Rapport over functie voor apparaatcertificeringsstatus

Het rapport over de status van de apparaatcertificering wordt aangevraagd door de host van de Windows Precision Touchpad om informatie over de 256-byte-blob van het apparaat op te halen.

Het rapporteren van een geldige, gecertificeerde blob aan de host is optioneel in Windows 10, maar is noodzakelijk voor achterwaartse compatibiliteit met Windows 8.1. Een apparaat dat geen ondertekende PTPHQA-blob verzendt, moet toch nog 256 bytes rapporteren, zoals de onderstaande voorbeeldblob. Apparaten die geen geldige certificeringsblob rapporteren, werken niet in Windows 8.1. Windows communiceert niet met apparaten die gebruikmaken van het HID Touchpad-gebruik, maar er wordt geen certificeringsstatus weergegeven in het functierapport Apparaatmogelijkheden.

De 256 bytes moeten worden opgegeven via het leverancierspecifieke gebruik op een door leverancier gedefinieerde gebruikspagina (Pagina 0xFF, Gebruik 0xC5) in het statusrapport voor apparaatcertificering.

Voordat een apparaat een 256-byte-blob ontvangt die de certificeringsstatus aangeeft, moet er als volgt een standaard-blob worden geïmplementeerd:

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

De host kan op elk moment na het lezen van de rapportdescriptor het functieverslag over de status van de apparaatcertificering van een Windows Precision Touchpad aanvragen.

Rapport van functie voor latentiemodus

Het functierapport Latentiemodus wordt door de host verzonden naar een Windows Precision Touchpad om aan te geven wanneer hoge latentie wenselijk is voor energiebesparing en omgekeerd, wanneer normale latentie gewenst is voor gebruik. Voor Windows Precision Touchpad-apparaten die via USB zijn verbonden, kan het apparaat onderscheid maken tussen onderbroken worden bij inactiviteit (runtime IDLE) en worden onderbroken omdat het systeem in de S3- of Verbonden stand-by-stand gaat.

De latentiemodus moet worden aangegeven met behulp van de waarde voor het gebruik van de latentiemodus (pagina 0x0D, gebruik 0x60) in het rapport van de latentiemodusfunctie. In de volgende tabel ziet u de gebruikswaarden voor de latentiemodus.

Latentiemoduswaarde Latentiemodus
0 Normale latentie
1 Hoge latentie

Invoerrapporten voor Windows Precision Touchpad

De host gebruikt het gebruik in de volgende tabel bij het extraheren van contactgegevens uit een invoerrapport via de Windows Precision Touchpad-verzameling. De tabel bevat alle verplichte gebruiksgegevens en de ondersteunde optionele gebruiksgegevens die betrekking hebben op elke unieke digitalisatiecontactpersoon die wordt gerapporteerd.

Lid Description Page ID-kaart Verplicht/optioneel
Contactpersoon-id Hiermee wordt de contactpersoon in een bepaald frame uniek geïdentificeerd. 0x0D 0x51 Mandatory
X X-coördinaat van contactpositie. 0x01 0x30 Mandatory
Ja Y-coördinaat van contactpositie. 0x01 0x31 Mandatory
Aanbeveling Stel in of het contact zich op het oppervlak van de digitaliserende machine bevindt. 0x0D 0x42 Mandatory
Vertrouwen Instellen dat een contact te groot is om een vinger te zijn. 0x0D 0x47 Mandatory
Width Breedte van omtrekkader rond een contact. 0x0D 0x48 Optioneel
Hoogte Hoogte van omtrekkader rond een contact. 0x0D 0x49 Optioneel
Druk De druk die de gebruiker op het contactpunt toepast. 0x0D 0x30 Optioneel
Azimut De tegen de klok in draaiing van het contact om de Z-as. 0x0D 0x3F Optioneel

De volgende tabel bevat alle gebruiksgegevens op het hoogste niveau die aanwezig moeten zijn in alle invoerrapporten van Windows Precision Touchpad.

Lid Description Page ID-kaart Verplicht/optioneel
Scantijd Relatieve scantijd. 0x0D 0x56 Mandatory
Aantal contactpersonen Het totale aantal contactpersonen dat in een bepaald rapport moet worden gerapporteerd. 0x0D 0x54 Mandatory
Mechanische kracht Totale kracht toegepast op de touchpad-sensor. 0x20 0x494 Optioneel
Knop 1 Geeft knopstatus aan voor touchpad-knop geïntegreerd met digitaliser. 0x09 0x01 Optioneel
Knop 2 Geeft de knopstatus aan voor een externe drukknop voor primair (standaard links) klikken. 0x09 0x02 Optioneel
Knop 3 Geeft de status van de knop aan voor een externe knop voor secundair klikken (standaard rechts). 0x09 0x03 Optioneel

Elk apparaat dat niet alle verplichte gebruiksgegevens op contact- of rapportniveau rapporteert, is niet functioneel als een Windows Precision Touchpad. Verplichte gebruiksrechten worden strikt afgedwongen door de Windows-host. Wanneer een logische maximumwaarde niet is beperkt, kan de waarde worden geoptimaliseerd om descriptorgrootte te verminderen.

De volgende secties bevatten informatie over de leden in de rapporten. Voor informatie over de elementen van de knop, zie Knoppen, gebruik van rapportniveau.

Contactpersoon-id

Identificeert uniek een contactpersoon binnen een rapport voor de levenscyclus. De contact-id moet constant blijven terwijl de contactpersoon wordt gedetecteerd en gerapporteerd door het apparaat. Elke afzonderlijke gelijktijdige contactpersoon moet een unieke id hebben. Id's kunnen opnieuw worden gebruikt zodra de eerder gekoppelde contactpersoon niet meer wordt gedetecteerd of gerapporteerd. Er is geen verwacht numeriek bereik en de gebruikte waarden worden alleen beperkt door het opgegeven logische maximum in de descriptor.

X/Y

De X- en Y-waarden rapporteren de coördinaten van een bepaalde contactpersoon. Een Windows Precision Touchpad moet één punt rapporteren voor elke contactpersoon. De volgende globale items moeten worden opgegeven voor zowel het X- als Y-gebruik:

  • Logisch minimum en logisch maximum (groter dan of gelijk aan 300DPI-invoerresolutie).

    Notitie Het hele logische coördinaatbereik moet rapportbaar zijn op zowel de X- als de Y-as.

  • Fysiek minimum en fysiek maximum (zie Apparaatintegratie - Grootte).

  • Eenheid en eenheidsexponent.

  • De coördinaat 0,0 (x, y-waarden) geeft de linkerbovenhoek van de touchpad aan.

Tip

Wordt gebruikt om aan te geven wanneer het contact zich op het oppervlak bevindt of het oppervlak van de digitaliserende machine heeft verlaten. Dit wordt aangegeven door een hoofditem met een rapportgrootte van 1 bits. Bij het leveren van een contactrapport moet de bit worden ingesteld wanneer het contact zich op het digitaleroppervlak bevindt en wordt gewist wanneer het contact het oppervlak heeft verlaten.

Wanneer een contactpersoon wordt gerapporteerd met de tipschakelaar leeg, moet de (X, Y)-locatie die wordt gerapporteerd, gelijk zijn aan de laatste positie die wordt gerapporteerd met de tipschakelaarset.

Diagram met twee contactpunten die interactie hebben met een Windows-precisie-touchpad en waarbij de contactpunten worden opgeheven om het touchpad-oppervlak op verschillende momenten te verlaten.

Met verwijzing naar het voorbeeld dat in het voorgaande diagram wordt beschreven, worden twee contacten op een Windows Precision Touchpad geplaatst. Vervolgens wordt het eerste contact op een later tijdstip opgeheven terwijl de tweede nog enige tijd op het oppervlak blijft. Dit wordt gerapporteerd zoals beschreven in de volgende tabel.

Rapport 1 2 3 4 5 6 7 8 9 10 11
Aantal contactpersonen 2 2 2 2 2 2 1 1 1 1 1
Contact 1: tipschakelaar 1 1 1 1 1 0 NR NR NR NR NR
Contact 1: X, Y X₁, Y₁ X₂, Y₂ X₃, Y₃ X₄, Y₄ X₅, Y₅ X₆, Y₆ NR NR NR NR NR
Contact 2: tipschakelaar 1 1 1 1 1 1 1 1 1 1 0
Contact 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₁₁

Vertrouwen

Wordt gebruikt om aan te geven dat het contact opzettelijk is. Voer een test van compatibiliteitsvereisten uit om ervoor te zorgen dat dit bit is ingesteld op 'Uit' wanneer een contact een dimensie (hoogte of breedte) heeft die groter is dan 25 mm, wat betekent dat het geen onbedoeld contact is. Windows Precision Touchpad-apparaten mogen geen contactpersonen verbergen in de firmwareverwerking, maar moeten alle contactpersonen doorsturen naar de host en wijzen op het vertrouwen. De host zal vervolgens gebruik maken van een foutmarge om het contact als een vergissing te traceren.

Zodra een apparaat heeft vastgesteld dat een contact onbedoeld is, moet het de betrouwbaarheidsbit voor dat contact en alle volgende rapporten wissen. Totdat een contactpersoon als onbedoeld is gecategoriseerd, moet het apparaat de betrouwbaarheidsbit voor die contactpersoon in het rapport instellen.

Breedte en hoogte

Het gebruik van breedte en hoogte vertegenwoordigt de breedte en hoogte van het begrenzingsvak rond het contact met de touchpad. De gerapporteerde waarden mogen nooit nul (0) zijn, behalve wanneer een UP-gebeurtenis wordt gerapporteerd. In dat geval moeten ze nul (0) zijn.

Druk

Druk is een meting van de kracht die de vinger uitoefent tegen het digitaliserende oppervlak. Er gelden geen beperkingen voor het bereik dat voor druk is toegestaan.

Azimut

Azimuth specificeert de draaiing tegen de klok in van de cursor rond de Z-as door een volledige cirkelomvang. Het fysieke bereik en het logische bereik moeten worden opgegeven. Het fysieke bereik moet 0 tot 360 zijn of gelijkwaardig in radianen, maar het apparaat kan het volledige bereik of de helft van het bereik rapporteren, afhankelijk van of de contactellips symmetrisch is volgens de hardwaremogelijkheden. Het logische bereik moet groot genoeg zijn om gegevens te leveren die nauwkeurig zijn op ten minste twee decimalen.

Scantijd

Scantijd rapporteert de relatieve digitalisator-tijd in eenheid van 100 μs. De scantijd vertegenwoordigt de delta van het eerste frame dat is gerapporteerd nadat een apparaat gegevens rapporteert na een periode van inactiviteit. De eerste scantijd die is ontvangen, wordt behandeld als basistijd voor volgende gerapporteerde tijden. De delta's tussen gerapporteerde scantijden moeten de scanfrequentie van de digitaliserende machine weerspiegelen. Het is belangrijk om te weten dat de host, in tegenstelling tot andere gebruik, geen flexibiliteit toestaat voor de eenheid voor het scantijdgebruik. Het moet in 100μs-eenheden zijn. De waarde wordt naar verwachting omgeklapt, omdat er slechts 2 bytes aan de teller worden toegewezen.

De waarde van de scantijd moet hetzelfde zijn voor alle contactpersonen binnen een frame.

Aantal contactpersonen

Dit wordt gebruikt om het aantal contactpersonen aan te geven dat in een bepaald kader wordt gerapporteerd, ongeacht de bijbehorende tipschakelaar.

Mechanische kracht

Dit wordt gebruikt voor het rapporteren van de totale kracht die wordt toegepast op de touchpad-sensor, onafhankelijk van de optionele druk die kan worden gerapporteerd voor afzonderlijke vingers. Als de druk ook wordt gerapporteerd voor individuele contacten, moeten de eenheden, eenheden exponent, fysiek bereik en logisch bereik identiek zijn voor druk en mechanische kracht, en moet de waarde voor mechanische kracht gelijk zijn aan de SOM van de druk voor contact 1 + druk voor contact 2 + .... etc., ongeacht de betrouwbaarheidsbit voor elk van die contacten.

Knoppen, gebruik op rapportniveau

Voorbeeldrapportdescriptors