Udostępnij przez


Kolekcja Windows Precision Touchpad (kolekcja touchpad-windows-precision-touchpad-collection)

W tym temacie omówiono kolekcję najwyższego poziomu windows Precision Touchpad i wyjaśniono, w jaki sposób kolekcja zapewnia raportowanie touchpad zgodne z protokołem HID na hoście systemu Windows.

Urządzenie z funkcją Touchpad precyzji systemu Windows może używać protokołu HID, aby udostępnić kolekcję najwyższego poziomu, która jest wyświetlana jako cyfryzator/touchpad ( 0x0D strony, 0x05 użycia).

Kolekcja Windows Precision Touchpad służy do udostępniania rozbudowanego raportowania wielu kontaktów i przycisków do hosta, a także informacji o urządzeniach związanych z tymi raportami. Kolekcja powinna obsługiwać dwa raporty funkcji: jeden, który umożliwia hostowi uzyskanie możliwości urządzenia, a drugi raport w celu uzyskania stanu certyfikacji urządzenia. Aby zapoznać się z przykładem obowiązkowego raportu wejściowego, zobacz Przykładowe deskryptory raportów.

Opcjonalny (ale zdecydowanie zalecany) raport funkcji może zostać zaimplementowany w celu uzyskania wskazówek dotyczących trybu opóźnienia z hosta w celu osiągnięcia wymaganego zużycia energii na urządzeniach USB w trybie uśpienia. Poniższe sekcje zawierają więcej informacji na temat raportów zawartych w kolekcji najwyższego poziomu dla tabletu Touchpad precyzji systemu Windows.

Raport funkcji możliwości urządzenia

Raport funkcji możliwości urządzenia jest wymagany przez hosta urządzenia Precision Touchpad, aby pobrać informacje o możliwościach raportowania kontaktów urządzenia i typ przycisku urządzenia.

Możliwość raportowania kontaktów urządzenia jest definiowana przez maksymalną liczbę współbieżnych kontaktów powierzchni, które może zgłaszać. Windows Precision Touchpad powinien obsługiwać co najmniej 3 równoczesne kontakty i maksymalnie 5 współbieżnych kontaktów. Touchpad powinien zgłosić tę wartość za pomocą maksymalnej liczby kontaktów ( 0x0D strony, 0x55 użycia) w raporcie funkcji funkcji urządzenia. Podczas raportowania danych urządzenie nie może zgłaszać większej liczby kontaktów niż maksymalna liczba kontaktów. Jeśli ramka wejściowa zawiera więcej kontaktów niż maksymalna, host odrzuci całą ramkę, w tym dane dla wszystkich wcześniej zgłoszonych kontaktów. W celu uzyskania najlepszego środowiska użytkownika urządzenie powinno pominąć raportowanie wszelkich nowych kontaktów wykrytych po osiągnięciu maksymalnej liczby w okresie istnienia nowego kontaktu, nawet jeśli jakiekolwiek istniejące kontakty odejdą. Istniejące kontakty mogą być nadal zgłaszane, a jeśli jakikolwiek wyjazd, nowo przybywające kontakty mogą się odbyć.

Typ przycisku urządzenia jest definiowany jako implementacja depresyjna (nazywana również typem podkładki kliknięć) lub implementacja niedepresyjna (nazywana również padem ciśnienia). Dopuszczalne jest również, aby windows Precision Touchpad miał zamiast tego nieprzyciśniętą powierzchnię do raportowania cyfry i przycisków zewnętrznych.

Typ implementacji przycisku należy określić za pomocą wartości dla typu przycisku (Page 0x0D, Usage 0x59) w raporcie funkcji funkcji urządzenia. Jeśli urządzenie ma nieprzyciśniętą powierzchnię digitizatora i opiera się zamiast tego na przyciskach zewnętrznych tylko w przypadku kliknięć myszy, to użycie można opcjonalnie zgłosić.

W poniższej tabeli przedstawiono wartości użycia typu przycisku.

Wartość typu przycisku Implementation
0 Depresyjny (kliknięcie- pad)
1 Niedepresyjny (poduszka pod ciśnieniem)
2 Nieobsługiwalne (dyskretna konsola)

Host może zażądać raportu funkcji urządzenia z systemem Windows Precision Touchpad w dowolnym momencie po przeczytaniu deskryptora raportu.

Raport funkcji stanu certyfikacji urządzenia

Raport funkcji stanu certyfikacji urządzenia jest wymagany przez hosta urządzenia Precision Touchpad w celu pobrania informacji o 256-bajtowym obiekcie blob urządzenia.

Raportowanie prawidłowego, certyfikowanego obiektu blob do hosta jest opcjonalne w systemie Windows 10, ale jest niezbędne do zapewnienia zgodności z poprzednimi wersjami systemu Windows 8.1. Urządzenie, które nie komunikuje podpisanego obiektu blob PTPHQA, musi nadal zgłaszać (dowolne) 256 bajtów, takie jak przykładowy obiekt blob poniżej. Urządzenia, które nie zgłaszają prawidłowego obiektu blob certyfikacji, nie będą działać w systemie Windows 8.1. System Windows nie będzie wchodzić w interakcje z urządzeniami korzystającymi z użycia funkcji touchpad HID, ale nie uwidacznia stanu certyfikacji w raporcie funkcji Możliwości urządzenia.

256 bajtów należy określić za pośrednictwem użycia specyficznego dla dostawcy na stronie użycia zdefiniowanego przez dostawcę (strona 0xFF, użycie 0xC5) w raporcie funkcji stan certyfikacji urządzenia.

Przed otrzymaniem przez urządzenie 256-bajtowego obiektu blob wskazującego jego stan certyfikacji, powinien zaimplementować domyślny obiekt blob w następujący sposób:

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

Host może zażądać raportu funkcji stanu certyfikacji urządzenia w systemie Windows Precision Touchpad w dowolnym momencie po przeczytaniu deskryptora raportu.

Raport funkcji trybu opóźnienia

Raport funkcji Tryb opóźnienia jest wysyłany przez hosta do tabletu Touchpad precyzji systemu Windows, aby wskazać, kiedy duże opóźnienie jest pożądane w przypadku oszczędności energii i odwrotnie, gdy normalne opóźnienie jest pożądane w przypadku operacji. W przypadku urządzeń z systemem Windows Precision Touchpad podłączonych przez usb umożliwia to urządzeniu rozróżnienie wstrzymania pod kątem braku aktywności (IDLE) i wstrzymania, ponieważ system wprowadza S3 lub Połączoną wstrzymanie.

Tryb opóźnienia powinien być wskazywany przy użyciu wartości użycia trybu opóźnienia (strona 0x0D, użycie 0x60) w raporcie funkcji trybu opóźnienia. W poniższej tabeli przedstawiono wartości użycia trybu opóźnienia.

Wartość trybu opóźnienia Tryb opóźnienia
0 Normalne opóźnienie
1 Duże opóźnienie

Raport funkcji intensywności haptycznej (opcjonalnie)

W systemie Windows 11 zaimplementowano raport funkcji intensywności haptycznej w celu zapewnienia dalszych możliwości opartych na bieżących punktach PTP z siłownikami haptycznymi. Raport funkcji intensywności haptycznej jest wysyłany przez hosta do tabletu Touchpad precyzji systemu Windows, aby ustawić intensywność haptycznych opinii na potrzeby touchpadu. Ten opcjonalny raport funkcji wymaga, aby urządzenie zgłosiło element SimpleHapticsController (0x0E strony, 0x01 użycia), który uwidacznia SET_FEATURE z jedną intensywnością globalną (0x0E strony, 0x23 użycia).

Aby zapoznać się z przykładowym deskryptorem, zobacz Przykładowe deskryptory raportów.

Raport funkcji naciśnięcia przycisku —próg (opcjonalnie)

W systemie Windows 11 kompilacja 26027+, dodano obsługę konfigurowalnego kliknięcia przez użytkownika za pomocą ustawień touchpad systemu Windows (np. Próg naciśnięcia przycisku, próg zastosowanej siły na touchpadie w celu wygenerowania kliknięcia/przycisku w dół). W przypadku precyzyjnego touchpadu do obsługi tego celu należy uwzględnić obsługę raportu SET_FEATURE dla pojedynczego użycia przycisku naciśnięcia progu (strona 0x0D, użycie 0xB0). Podczas wyliczania host oceni obsługiwany zakres logiczny i fizyczny z deskryptora i obliczy uwidocznione opcje interfejsu użytkownika ustawień, w tym wartości domyślne. Host wystawi SET_FEATURE, aby przekazać użytkownikowi określony próg naciśnięcia przycisku do urządzenia; wystawianie może wystąpić w dowolnym momencie, ale występuje za każdym razem, gdy ustawienie zostanie zmienione, nastąpi przełączenie użytkownika i gdy urządzenie zostanie wyliczone lub zresetowane.

Zakres logiczny jest liniowo mapowany na fizyczny zakres wartości i równomiernie rozmieszczony i wyśrodkowany wokół wartości domyślnej. Po uzyskaniu zakresu logicznego wartość domyślna zostanie obliczona przy użyciu następującej formuły:

Diagram przedstawiający formułę obliczania domyślnego progu naciśnięcia przycisku w jednostkach logicznych

Wartość Minimum logiczne, Wartość domyślna i Wartość logiczna odpowiada 3 odrębnym poziomom naciśnięcia przycisku uwidocznionemu użytkownikowi za pośrednictwem interfejsu użytkownika ustawień systemu Windows (obsługującego odpowiednio "Niski", "Średni" i "Wysoki").

Zalecany zakres fizyczny dla progu naciśnięcia przycisku jest co najmniej pokrycie zakresu od 110g do 190g, co odpowiada odpowiednio minimalnym i maksymalnym wartościom. W przypadku deskryptora próbki korzystającego z wartości Fizycznej maksymalnej 190g i fizycznej minimalnej 110g (w związku z tym na podstawie powyższej formuły domyślna wartość domyślna to 150g), zobacz Przykładowe deskryptory raportów.

Raporty wejściowe touchpad precyzji systemu Windows

Host używa użycia w poniższej tabeli podczas wyodrębniania danych kontaktowych z raportu wejściowego za pośrednictwem kolekcji Windows Precision Touchpad. Tabela zawiera wszystkie obowiązkowe użycia oraz obsługiwane opcjonalne użycie związane z poszczególnymi zgłoszonymi kontaktami z unikatowymi cyfryzatorami.

Członek Description Strona identyfikator Obowiązkowe/opcjonalne
Identyfikator kontaktu Jednoznacznie identyfikuje kontakt w obrębie danej ramki. 0x0D 0x51 Mandatory
X Współrzędna X położenia kontaktu. 0x01 0x30 Mandatory
Y Współrzędna Y pozycji kontaktu. 0x01 0x31 Mandatory
Wskazówka Ustaw, czy kontakt znajduje się na powierzchni cyfry. 0x0D 0x42 Mandatory
Pewność siebie Ustaw, gdy kontakt jest zbyt duży, aby być palcem. 0x0D 0x47 Mandatory
Szerokość Szerokość pola ograniczenia wokół kontaktu. 0x0D 0x48 Opcjonalnie
Wysokość Wysokość pola ograniczenia wokół kontaktu. 0x0D 0x49 Opcjonalnie
Ciśnienie Ilość ciśnienia, jaką użytkownik stosuje do punktu kontaktowego. 0x0D 0x30 Opcjonalnie
Azymut Obracanie się w kierunku wskazówek zegara styka o osi Z. 0x0D 0x3F Opcjonalnie

Poniższa tabela zawiera wszystkie zastosowania najwyższego poziomu, które powinny być obecne we wszystkich raportach wejściowych windows Precision Touchpad.

Członek Description Strona identyfikator Obowiązkowe/opcjonalne
Czas skanowania Względny czas skanowania. 0x0D 0x56 Mandatory
Liczba kontaktów Łączna liczba kontaktów do zgłoszenia w danym raporcie. 0x0D 0x54 Mandatory
Siła mechaniczna Całkowita siła zastosowana do czujnika touchpad. 0x20 0x494 Opcjonalnie
Przycisk 1 Wskazuje stan przycisku dla przycisku Touchpad zintegrowanego z digitizer. 0x09 0x01 Opcjonalnie
Przycisk 2 Wskazuje stan przycisku dla przycisku zewnętrznego dla kliknięcia podstawowego (domyślne po lewej stronie). 0x09 0x02 Opcjonalnie
Przycisk 3 Wskazuje stan przycisku dla przycisku zewnętrznego dla pomocniczego (domyślnego prawa) kliknięcia. 0x09 0x03 Opcjonalnie

Każde urządzenie, które nie zgłasza wszystkich obowiązkowych użycia na poziomie kontaktu lub raportu, będzie niefunkcjonalne jako windows Precision Touchpad. Obowiązkowe użycie jest wymuszane przez hosta systemu Windows. Jeśli wartość logiczna maksymalna nie została ograniczona, można zoptymalizować wartość w celu zmniejszenia rozmiaru deskryptora.

Poniższe sekcje zawierają informacje o członkach w raportach. Aby uzyskać informacje o członkach przycisku, zobacz Przyciski, Użycie na poziomie raportu.

Identyfikator kontaktu

Jednoznacznie identyfikuje kontakt w raporcie na potrzeby jego cyklu życia. Identyfikator kontaktu musi pozostać stały, gdy kontakt zostanie wykryty i zgłoszony przez urządzenie. Każdy oddzielny kontakt współbieżny musi mieć unikatowy identyfikator. Identyfikatory można ponownie użyć, gdy wcześniej skojarzony kontakt nie zostanie już wykryty ani zgłoszony. Nie ma oczekiwanego zakresu liczbowego, a używane wartości są ograniczone tylko przez określone maksimum logiczne w deskryptorze.

X/Y

Wartości X i Y raportują współrzędne danego kontaktu. Windows Precision Touchpad powinien zgłosić jeden punkt dla każdego kontaktu. Dla użycia X i Y należy określić następujące elementy globalne:

  • Wartość logiczna minimalna i logiczna maksymalna (zapewniająca rozdzielczość wejściową 300DPI lub większą niż 300DPI).

    Nuta Cały zakres współrzędnych logicznych powinien być raportowalny zarówno na osi X, jak i Y.

  • Minimalna i fizyczna maksymalna (zobacz Integracja urządzenia — rozmiar).

  • Wykładnik jednostkowy i jednostkowy.

  • Współrzędna 0,0 (x, y) wskazuje lewy górny róg panelu dotykowego.

Napiwek

Służy do wskazywania, kiedy kontakt znajduje się na powierzchni lub opuścił powierzchnię cyfry. Jest to wskazywane przez element główny o rozmiarze raportu o rozmiarze 1 bitów. Podczas dostarczania raportu kontaktu bit powinien być ustawiony, gdy kontakt znajduje się na powierzchni cyfry i czyszczone, gdy kontakt opuścił powierzchnię.

Gdy kontakt jest zgłaszany z przezroczystym przełącznikiem końcówki, zgłaszana lokalizacja (X, Y) powinna być taka sama jak ostatnia pozycja zgłoszona z zestawem przełącznika porad.

diagram przedstawiający dwie kontakty wchodzące w interakcję z precyzyjnym touchpadem systemu Windows oraz z podniesionymi kontaktami, aby pozostawić powierzchnię touchpadu oddzielnie.

Z odniesieniem do przykładu przedstawionego na powyższym diagramie, dwa kontakty są umieszczane na ekranie Touchpad precyzji systemu Windows, a następnie w pewnym czasie pierwszy kontakt jest podnosiny, podczas gdy drugi pozostaje na powierzchni przez jakiś dodatkowy czas. Zostanie to zgłoszone zgodnie z opisem w poniższej tabeli.

Raport 1 2 3 4 5 6 7 8 9 10 11
Liczba kontaktów 2 2 2 2 2 2 1 1 1 1 1
Kontakt 1: przełącznik porad 1 1 1 1 1 0 NR NR NR NR NR
Kontakt 1: X, Y X₁, Y₁ X ZE, Y ZE X₃, Y₃ X₄, Y₄ X₅, Y₅ X₆, Y₆ NR NR NR NR NR
Kontakt 2: przełącznik porad 1 1 1 1 1 1 1 1 1 1 0
Kontakt 2: X, Y X₁, Y₁ X ZE, Y ZE X₃, Y₃ X₄, Y₄ X₅, Y₅ X₆, Y₆ X₇, Y₇ X₈, Y₈ X₉, Y₉ X₁₀, Y₁₀ X₁₁, Y₁₁

Pewność siebie

Służy do wskazywania, że kontakt jest zamierzony. Test wymagań zgodności w celu upewnienia się, że ten bit jest ustawiony na wartość "Wyłączone", gdy kontakt ma jakiekolwiek wymiary (wysokość lub szerokość) większe niż 25 mm, co oznacza, że nie jest to niezamierzony kontakt. Urządzenia z systemem Windows Precision Touchpad nie powinny ukrywać żadnych kontaktów w przetwarzaniu oprogramowania układowego, ale powinny przekazywać wszystkie kontakty do hosta i wskazywać pewność siebie. Następnie host będzie używać pewności do śledzenia kontaktu jako przypadkowego.

Gdy urządzenie ustali, że kontakt jest niezamierzony, powinien wyczyścić nieco ufności dla tego raportu kontaktu i wszystkich kolejnych raportów. Dopóki kontakt nie zostanie sklasyfikowany jako niezamierzony, urządzenie powinno ustawić bit ufności dla tego kontaktu w raporcie.

Szerokość i wysokość

Użycie opcji Szerokość i Wysokość reprezentują szerokość i wysokość pola ograniczenia wokół kontaktu touchpad. Zgłoszone wartości nigdy nie powinny być zerowe (0), z wyjątkiem sytuacji, gdy zgłaszane jest zdarzenie "UP", w tym przypadku powinny mieć zero (0).

Ciśnienie

Ciśnienie to pomiar siły wywieranej przez palec na powierzchnię cyfry. Nie ma żadnych ograniczeń dotyczących zakresu dozwolonego pod kątem ciśnienia.

Azymut

Azimuth określa obrót w kierunku wskazówek zegara kursora wokół osi Z przez pełny zakres okrągły. Należy określić zakres fizyczny i zakres logiczny. Zakres fizyczny musi wynosić od 0 do 360 lub równoważne w radianach, jednak urządzenie może zgłaszać pełny zakres lub połowę zakresu przy założeniu, że wielokropek kontaktowy jest symetryczny na podstawie możliwości sprzętowych. Zakres logiczny musi być wystarczająco duży, aby dostarczać dane, które są dokładne dla co najmniej dwóch miejsc dziesiętnych.

Czas skanowania

Czas skanowania zgłasza względny czas cyfry w 100μs jednostek. Czas skanowania reprezentuje różnicę z pierwszej ramki, która została zgłoszona po rozpoczęciu raportowania danych przez urządzenie po upływie okresu braku aktywności. Pierwszy odebrany czas skanowania jest traktowany jako czas bazowy dla kolejnych zgłoszonych czasów. Różnice między zgłoszonymi godzinami skanowania powinny odzwierciedlać częstotliwość skanowania cyfry. Należy pamiętać, że w przeciwieństwie do innych zastosowań host nie zezwala na elastyczność jednostki na potrzeby użycia czasu skanowania. Musi znajdować się w jednostkach 100μs. Oczekuje się, że wartość zostanie przerzuciona, ponieważ tylko 2 bajty są przydzielane do licznika.

Wartość czasu skanowania powinna być taka sama dla wszystkich kontaktów w ramce.

Liczba kontaktów

Służy do wskazywania liczby kontaktów zgłaszanych w danej ramce niezależnie od skojarzonego przełącznika porad.

Siła mechaniczna

Służy do zgłaszania całkowitej siły stosowanej do czujnika touchpad, niezależnie od opcjonalnego ciśnienia, które można zgłaszać dla poszczególnych palców. Jeśli ciśnienie jest również zgłaszane dla poszczególnych kontaktów, jednostki wykładnicze, zakres fizyczny i zakres logiczny muszą być wcięcie dla ciśnienia i siły mechanicznej, a wartość siły mechanicznej musi = SUM(Ciśnienie dla kontaktu 1 + Ciśnienie dla kontaktu 2 + .... itp.) niezależnie od współczynnika ufności dla każdego z tych kontaktów.

Przyciski, użycie na poziomie raportu

Przykładowe deskryptory raportów