Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Toto téma popisuje kolekci touchpadu nejvyšší úrovně systému Windows a vysvětluje, jak kolekce poskytuje sestavy touchpadu kompatibilní s technologií HID hostiteli Windows.
Zařízení s Windows Precision Touchpad může pomocí protokolu HID poskytnout kolekci nejvyšší úrovně, která se zobrazí jako digitizátor nebo touchpad (Page 0x0D, Usage 0x05).
Kolekce Windows Precision Touchpad slouží k poskytování bohatých sestav pro více kontaktů a tlačítek hostiteli a také informace o zařízení, které souvisejí s těmito sestavy. Kolekce by měla podporovat dvě sestavy funkcí: jednu, která hostiteli umožňuje získat možnosti zařízení, a další sestavu pro získání stavu certifikace zařízení. Příklad povinné vstupní sestavy najdete v části Ukázkové popisovače sestavy.
Volitelná (ale důrazně doporučená) sestava funkcí může být implementována pro získání tipů režimu latence od hostitele, aby bylo možné dosáhnout požadované spotřeby energie na zařízeních USB v režimu spánku. Následující části obsahují další informace o sestavách obsažených v kolekci nejvyšší úrovně pro Touchpad s přesností na Windows.
Sestava funkcí funkcí zařízení
Sestava funkcí funkcí zařízení je požadována hostitelem zařízení Precision Touchpad, aby načetl informace o možnostech hlášení kontaktů zařízení a typu tlačítka zařízení.
Funkce generování sestav kontaktů zařízení je definována maximálním počtem souběžných kontaktů na povrchu, které může hlásit. Windows Precision Touchpad by měl podporovat minimálně 3 souběžné kontakty a maximálně 5 souběžných kontaktů. Touchpad by měl tuto hodnotu hlásit prostřednictvím maximálního počtu kontaktů (page 0x0D, usage 0x55) v sestavě funkcí funkcí zařízení. Při vytváření sestav dat nesmí zařízení hlásit více kontaktů, než je maximální počet kontaktů. Pokud vstupní rámec obsahuje více kontaktů, než je maximum, hostitel zahodí celý rámec, včetně dat pro všechny dříve ohlášené kontakty. Pro co nejlepší uživatelské prostředí by zařízení mělo potlačit hlášení všech nových kontaktů zjištěných po dosažení maximálního počtu po celou dobu života nového kontaktu, a to i v případě, že některé existující kontakty odcházejí. Stávající kontakty můžou být i nadále hlášené a pokud odcházíte, můžou se nově příchozí kontakty uskutečnit.
Typ tlačítka zařízení je definován jako deprimovatelná implementace (označovaná také jako typ klikni a podložky) nebo nedeprimovatelná implementace (označovaná také jako tlaková podložka). Je také přijatelné, aby systém Windows Precision Touchpad měl místo toho povrch a externí tlačítka pro generování zpráv bez tlačítek pro generování sestav.
Typ implementace tlačítka by měl být zadán prostřednictvím hodnoty pro typ tlačítka (Page 0x0D, Usage 0x59) v sestavě funkcí funkcí zařízení. Pokud má zařízení povrch digitizátoru bez tlačítka a spoléhá místo toho na externích tlačítkách pouze pro kliknutí myší, můžete toto použití volitelně oznámit.
V následující tabulce jsou uvedeny hodnoty použití typu tlačítka.
| Hodnota typu tlačítka | Implementation |
|---|---|
| 0 | Stisknutelná (klikni a podložka) |
| 1 | Bez deprese (tlaková podložka) |
| 2 | Neklikání (diskrétní podložka) |
Hostitel může kdykoli po přečtení popisovače sestavy požádat o sestavu funkcí funkcí funkce Windows Precision Touchpad.
Zpráva o stavu certifikace zařízení
Hostitel zařízení Precision Touchpad požaduje zprávu o stavu certifikace zařízení, aby načetl informace o objektu blob 256 bajtů zařízení.
Hlášení platného certifikovaného objektu blob pro hostitele je ve Windows 10 volitelné, ale je nezbytné pro zpětnou kompatibilitu s Windows 8.1. Zařízení, které nesděluje podepsaný objekt blob PTPHQA, musí stále hlásit (všechny) 256 bajty, například ukázkový objekt blob níže. Zařízení, která neoznamují platný objekt blob certifikace, nebudou ve Windows 8.1 fungovat. Systém Windows nebude pracovat se zařízeními, která používají používání touchpadu HID, ale nezveřežní stav certifikace v sestavě funkcí Funkce zařízení.
256 bajtů by měly být zadány prostřednictvím použití specifického dodavatele na stránce použití definované dodavatelem (stránka 0xFF, využití 0xC5) v sestavě funkcí stavu certifikace zařízení.
Před přijetím objektu blob o velikosti 256 bajtů, který označuje stav certifikace, by měl implementovat výchozí objekt blob následujícím způsobem:
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
Hostitel může kdykoli po přečtení popisovače sestavy požádat o zprávu o stavu certifikace zařízení systému Windows Precision Touchpad.
Sestava funkcí režimu latence
Sestava funkcí Režim latence je odeslána hostitelem do zařízení Windows Precision Touchpad, aby bylo možné určit, kdy je pro úsporu energie žádoucí vysoká latence, a naopak, pokud je pro provoz požadovaná normální latence. U zařízení Windows Precision Touchpad připojených přes USB to umožňuje zařízení rozlišovat mezi pozastavením nečinnosti (nečinnosti za běhu) a pozastavením, protože systém vstupuje do pohotovostního režimu S3 nebo Connected Standby.
Režim latence by měl být označen pomocí hodnoty pro použití režimu latence (Page 0x0D, Usage 0x60) v sestavě funkcí režimu latence. V následující tabulce jsou uvedeny hodnoty využití režimu latence.
| Hodnota režimu latence | Režim latence |
|---|---|
| 0 | Normální latence |
| 1 | Vysoká latence |
Sestava funkce haptické intenzity (volitelné)
Ve Windows 11 byla implementována sestava funkce haptické intenzity, která poskytuje další možnosti, které vycházejí z aktuálních PTPs s haptickými poháněcími ovladači. Sestava funkce haptické intenzity je odeslána hostitelem do systému Windows Precision Touchpad, aby se nastavil intenzita haptické zpětné vazby pro touchpad. Tato volitelná sestava funkcí vyžaduje, aby zařízení ohlásilo ovládací prvek SimpleHapticsController (Page 0x0E, Usage 0x01), který zveřejňuje SET_FEATURE s jednou globální intenzitou (Page 0x0E, Usage 0x23).
Ukázkový popisovač sestavy najdete v části Popisovače ukázkových sestav.
Tlačítko – sestava funkcí prahové hodnoty (volitelné)
Ve Windows 11, buildu 26027+ byla přidána podpora konfigurovatelného kliknutí uživatelem prostřednictvím nastavení touchpadu systému Windows (neboli Tlačítko Stisknout prahovou hodnotu, prahová hodnota použité síly na touchpadu pro vygenerování kliknutí/tlačítka dolů). Aby bylo možné tuto funkci podporovat, musí obsahovat zpracování SET_FEATURE sestavy pro stisknutí tlačítka s jedním použitím (0x0D stránky, využití 0xB0). Během výčtu hostitel posoudí podporovaný logický a fyzický rozsah od popisovače a vypočítá vystavené možnosti uživatelského rozhraní nastavení, včetně výchozích hodnot. Hostitel vydá SET_FEATURE, aby uživateli sdělí, že tlačítko stiskne prahovou hodnotu pro zařízení; k tomuto vystavení může dojít kdykoli, ale při každé změně nastavení dojde k přepnutí uživatele a při výčtu nebo resetování zařízení.
Logický rozsah se lineárně mapuje na fyzický rozsah hodnot a rovnoměrně se zarovná a zarovná kolem výchozí hodnoty. Po získání logické oblasti se výchozí hodnota vypočítá pomocí následujícího vzorce:
Logické minimum, výchozí a logické maximum bude odpovídat 3 odlišným úrovním stisknutí tlačítka, které je vystaveno uživateli prostřednictvím uživatelského rozhraní nastavení Systému Windows (podpora "Nízký", "Střední" a "Vysoká").
Doporučeným fyzickým rozsahem pro prahovou hodnotu stisknutí tlačítka je alespoň pokrytí rozsahu mezi 110g a 190g, který odpovídá minimální a maximální hodnotě. U popisovače vzorku s využitím fyzického maxima 190g a fyzického minima 110g (tedy na základě výše uvedeného vzorce by výchozí hodnota 150g) naleznete v části Popisovače ukázkové sestavy.
Windows Precision Touchpad Input Reports
Hostitel používá použití v následující tabulce při extrahování kontaktních dat ze vstupní sestavy prostřednictvím kolekce Windows Precision Touchpad. Tabulka obsahuje všechna povinná použití a podporovaná volitelná použití související s jednotlivými hlášenými kontakty digitalizátoru.
| Člen | Description | Stránka | ID | Povinné/volitelné |
|---|---|---|---|---|
| ID kontaktu | Jednoznačně identifikuje kontakt v rámci daného rámce. | 0x0D | 0x51 | Povinné |
| X | Souřadnice X pozice kontaktu. | 0x01 | 0x30 | Povinné |
| Й | Souřadnice Y kontaktní polohy. | 0x01 | 0x31 | Povinné |
| Návod | Nastavte, zda je kontakt na povrchu digitizátoru. | 0x0D | 0x42 | Povinné |
| Spolehlivost | Nastavte, když je kontakt příliš velký, aby byl prstem. | 0x0D | 0x47 | Povinné |
| Šířka | Šířka ohraničujícího rámečku kolem kontaktu. | 0x0D | 0x48 | Volitelný |
| Výška | Výška ohraničujícího rámečku kolem kontaktu. | 0x0D | 0x49 | Volitelný |
| Tlak | Množství tlaku, který uživatel používá na kontaktní bod. | 0x0D | 0x30 | Volitelný |
| Azimut | Otočení kontaktu proti směru hodinových ručiček o ose Z. | 0x0D | 0x3F | Volitelný |
Následující tabulka obsahuje všechna použití nejvyšší úrovně, která by se měla nacházet ve všech vstupních sestavách Windows Precision Touchpad.
| Člen | Description | Stránka | ID | Povinné/volitelné |
|---|---|---|---|---|
| Čas kontroly | Relativní čas kontroly | 0x0D | 0x56 | Povinné |
| Počet kontaktů | Celkový početkontaktůch | 0x0D | 0x54 | Povinné |
| Mechanická síla | Celková síla použitá na senzor touchpadu. | 0x20 | 0x494 | Volitelný |
| Tlačítko 1 | Označuje stav tlačítka pro tlačítko Touchpad integrované s digitizátorem. | 0x09 | 0x01 | Volitelný |
| Tlačítko 2 | Označuje stav tlačítka pro externí tlačítko pro primární (výchozí vlevo) kliknutí. | 0x09 | 0x02 | Volitelný |
| Tlačítko 3 | Označuje stav tlačítka pro externí tlačítko pro sekundární (výchozí pravé) kliknutí. | 0x09 | 0x03 | Volitelný |
Jakékoli zařízení, které nehlásí všechna povinná použití na úrovni kontaktu nebo sestavy, nebude funkční jako Windows Precision Touchpad. Povinné použití je přísně vynucuje hostitel Windows. Pokud není omezena logická maximální hodnota, je možné ji optimalizovat tak, aby se zmenšila velikost popisovače.
Následující části obsahují informace o členech v sestavách. Informace o členech tlačítka najdete v tématu Tlačítka, Využití na úrovni sestavy.
ID kontaktu
Jednoznačně identifikuje kontakt v rámci sestavy pro jeho životní cyklus. ID kontaktu musí zůstat konstantní, dokud se kontakt zjistí a nahlásí zařízení. Každý samostatný souběžný kontakt musí mít jedinečný identifikátor. Identifikátory je možné znovu použít, jakmile se dříve přidružený kontakt už nezjistí nebo nenahlásí. Neexistuje očekávaný číselný rozsah a použité hodnoty jsou omezeny pouze zadaným logickým maximem v popisovači.
X/Y
Hodnoty X a Y hlásí souřadnice daného kontaktu. Funkce Windows Precision Touchpad by měla hlásit jeden bod pro každý kontakt. Pro použití X i Y by se měly zadat následující globální položky:
Logické minimum a logické maximum (zajištění vyššího nebo rovnou 300DPI vstupnímu rozlišení).
Poznámka Celá logická oblast souřadnic by měla být reportovatelná na ose X i Y.
Fyzické minimum a fyzické maximum (viz Integrace zařízení – velikost).
Exponent jednotek a jednotek.
Souřadnice 0,0 (x, y hodnoty) označuje levý horní roh touchpadu.
Spropitné
Používá se k označení, kdy je kontakt na povrchu nebo nechal povrch digitalizátoru. To označuje hlavní položka s velikostí sestavy 1 bitu. Při doručování sestavy kontaktu by měl být bit nastaven, když je kontakt na povrchu digitizátoru, a vymazal se, když kontakt opustil povrch.
Když je kontakt hlášen s vypnutým přepínačem tipu, mělo by být hlášené umístění (X, Y) stejné jako poslední pozice hlášené pomocí sady spínačů tipu.
S odkazem na příklad uvedený v předchozím diagramu se dva kontakty umístí na Windows Precision Touchpad a později se první kontakt zvedne, zatímco druhý zůstane na povrchu ještě nějakou dobu. To by bylo hlášeno, jak je popsáno v následující tabulce.
| Zpráva | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Počet kontaktů | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 1 |
| Kontakt 1: spínač tipu | 1 | 1 | 1 | 1 | 1 | 0 | NR | NR | NR | NR | NR |
| Kontakt 1: X, Y | X₁, Y₁ | Xznaky, Y asymetrie | X₃, Y₃ | X₄, Y₄ | X₅, Y₅ | X₆, Y₆ | NR | NR | NR | NR | NR |
| Kontakt 2: spínač tipu | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
| Kontakt 2: X, Y | X₁, Y₁ | Xznaky, Y asymetrie | X₃, Y₃ | X₄, Y₄ | X₅, Y₅ | X₆, Y₆ | X₇, Y₇ | X₈, Y₈ | X₉, Y₉ | X₁₀, Y₁₀ | X₁₁, Y₁₁ |
Důvěrnost
Používá se k označení, že kontakt je úmyslný. Test požadavků na kompatibilitu, aby se zajistilo, že je tento bit nastavený na Vypnuto, pokud má kontakt jakékoli rozměry (výšku nebo šířku) větší než 25 mm, což znamená, že se nejedná o nezamýšlený kontakt. Zařízení Windows Precision Touchpad by neměla skrýt žádné kontakty při zpracování firmwaru, ale všechny kontakty by měly předávat hostiteli a označit důvěru. Hostitel pak použije jistotu ke sledování kontaktu jako náhodného.
Jakmile zařízení zjistí, že kontakt není neúmyslný, měl by vymazat bit spolehlivosti pro tuto zprávu kontaktu a všechny následné sestavy. Dokud není kontakt zařazený do kategorie neúmyslně, mělo by zařízení nastavit bit spolehlivosti pro tento kontakt v sestavě.
Šířka a výška
Použití šířky a výšky představuje šířku a výšku ohraničujícího rámečku kolem kontaktu touchpadu. Hlášené hodnoty by nikdy neměly být nula (0), s výjimkou případů, kdy je hlášena událost "UP", v takovém případě by měly být nula (0).
Tlak
Tlak je měření síly, kterou prst vyvíjí proti povrchu digitalizátoru. Pro rozsah povolený tlak neexistují žádná omezení.
Azimut
Azimuth určuje otočení kurzoru po směru hodinových ručiček kolem osy Z přes plný kruhový rozsah. Je nutné zadat fyzický rozsah a logický rozsah. Fyzický rozsah musí být v radiánech 0 až 360 nebo ekvivalentní, zařízení však může hlásit celý rozsah nebo polovinu rozsahu za předpokladu, že tři tečky kontaktu jsou symetrické na základě hardwarových schopností. Logická oblast musí být dostatečně velká, aby poskytovala data, která jsou přesná na nejméně dvě desetinná místa.
Čas kontroly
Doba skenování hlásí relativní čas digitizátoru v jednotkách 100 μs. Čas kontroly představuje rozdíl od prvního rámce, který byl hlášen po spuštění zařízení vykazovaných dat po určité době nečinnosti. První přijatý čas kontroly se považuje za základní čas pro následné hlášené časy. Rozdíly mezi hlášenými časy kontroly by měly odrážet frekvenci skenování digitizátoru. Je důležité si uvědomit, že na rozdíl od jiných použití hostitel neumožňuje žádné flexibilitě jednotky pro využití času kontroly. Musí být v 100μs jednotkách. Očekává se, že se hodnota převrací, protože čítači se přidělují jenom 2 bajty.
Hodnota času kontroly by měla být stejná pro všechny kontakty v rámci rámce.
Počet kontaktů
Slouží k označení počtu kontaktů hlášených v daném rámečku bez ohledu na jejich přidružený přepínač tipu.
Mechanická síla
Používá se k hlášení celkové síly použité na senzor touchpadu nezávisle na volitelném tlaku, který lze hlásit pro jednotlivé prsty. Pokud je tlak hlášen také pro jednotlivé kontakty, pak jednotky, exponent jednotek, fyzický rozsah a logický rozsah musí být odsazení pro tlak a mechanickou sílu a hodnota mechanické síly musí = SUMA(tlak pro kontakt 1 + tlak pro kontakt 2 + .... atd) bez ohledu na bit spolehlivosti pro každý z těchto kontaktů.