Raccolta di touchpad a precisione Windows (touchpad-windows-precision-touchpad-collection)

Questo argomento discute la collezione principale di un Touchpad di Precisione Windows e spiega come la collezione fornisca una segnalazione del touchpad conforme a HID all'host Windows.

Un dispositivo Touchpad di precisione Windows può utilizzare il protocollo HID per fornire una raccolta di primo livello visualizzata come digitalizzatore/touchpad (Page 0x0D, Usage 0x05).

La raccolta Windows Precision Touchpad serve allo scopo di fornire report avanzati su più contatti e pulsanti all'host, nonché informazioni sul dispositivo correlate a tali report. La raccolta deve supportare due report sulle funzionalità: uno che consente all'host di ottenere le funzionalità del dispositivo e un altro report per ottenere lo stato di certificazione del dispositivo. Per un esempio del report di input obbligatorio, vedere i Descrittori di esempio del report.

È possibile implementare un report delle funzionalità facoltativo (ma altamente consigliato) per ottenere suggerimenti sulla modalità di latenza dall'host, per ottenere il consumo di energia richiesto nei dispositivi USB in modalità sospensione. Le sezioni seguenti forniscono altre informazioni sui report contenuti nella raccolta di primo livello per il Touchpad di precisione di Windows.

Touchpad aptici

Un touchpad aptico è un Windows Precision Touchpad che utilizza un attuatore aptico (ad esempio un attuatore lineare a risonanza o un motore piezoelettrico) per simulare la sensazione di un clic meccanico, invece di basarsi su un meccanismo di cerniera fisicamente in movimento. Poiché non c'è alcuna tavola da immersione meccanica o assemblaggio di pulsanti a cerniera, la superficie del touchpad rimane fissa; il feedback del clic viene fornito interamente tramite vibrazioni precisamente controllate.

Differenze principali rispetto ai touchpad meccanici:

  • Nessuna parte mobile: i touchpad meccanici usano una superficie a cerniera o un commutatore a cupola che deprime fisicamente quando l'utente fa clic. I touchpad aptici hanno una superficie rigida e non mobile e producono feedback di clic attraverso vibrazioni.
  • Sensazione di clic uniforme: su un touchpad meccanico la forza e la sensazione del clic varia a seconda della posizione in cui l'utente preme (tipicamente più rigido in prossimità della cerniera superiore). I touchpad tattili offrono un feedback uniforme indipendentemente dalla posizione del tocco.
  • Feedback configurabile dal software: l'intensità e il carattere della risposta del clic aptico possono essere modificati dall'host, abilitando la forza del clic configurabile dall'utente e il supporto per modelli di forma d'onda diversi.
  • Fattore di forma più sottile: L'eliminazione dell'assemblaggio della cerniera meccanica consente la progettazione di dispositivi più sottili.

I touchpad aptici supportano due modalità di feedback aptico:

  • Feedback aptico avviato dal dispositivo: il touchpad attiva autonomamente il feedback aptico quando determina che l'utente ha premuto o rilasciato il pulsante di superficie. Questo sostituisce la sensazione di clic fisico di un touchpad meccanico. Il dispositivo può facoltativamente accettare SET_FEATURE report dall'host per consentire all'utente di personalizzare l'intensità del feedback e la forza necessaria per attivare una pressione del pulsante.
  • Feedback aptico avviato daHost: l'host Windows invia report di output al touchpad per attivare feedback aptico su richiesta, indipendentemente dalle pressioni dei pulsanti. Ciò consente esperienze più avanzate basate sulle applicazioni, ad esempio impulsi al passaggio del mouse, feedback di allineamento e conferme dei passaggi usando un set definito di forme d'onda.

Per dettagli completi sul protocollo, definizioni di forme d'onda, descrittori di esempio e indicazioni sull'implementazione dell'hardware, vedere la Guida all'implementazione degli aptici dei dispositivi di input.

Report capacità del dispositivo

Il report sulle funzionalità del dispositivo viene richiesto dall'host del Touchpad di Precisione Windows per recuperare informazioni sulle funzionalità di segnalazione dei contatti del dispositivo e sul tipo di pulsante del dispositivo.

La funzionalità di segnalazione dei contatti del dispositivo è definita dal numero massimo di contatti della superficie simultanea che può segnalare. Un Touchpad di Precisione Windows deve supportare almeno 3 contatti simultanei e un massimo di 5. Il touchpad dovrebbe riportare questo valore tramite il conteggio massimo contatti (Pagina 0x0D, Uso 0x55) nel report delle funzionalità del dispositivo. Durante la segnalazione dei dati, un dispositivo non deve segnalare più contatti rispetto al numero massimo di contatti. Se un frame di input contiene più contatti del massimo, l'host eliminerà l'intero frame, inclusi i dati per i contatti segnalati in precedenza. Per un'esperienza utente ottimale, il dispositivo deve eliminare la segnalazione di eventuali nuovi contatti rilevati dopo il raggiungimento del numero massimo per la durata del nuovo contatto, anche se i contatti esistenti partono. I contatti esistenti possono continuare a essere segnalati e, se qualcuno parte, i contatti appena arrivati possono prenderne il posto.

Il tipo di pulsante del dispositivo è definito come un'implementazione premibile (detta anche tipo di click-pad) o un'implementazione non premibile (detta anche tipo a pressione). È anche accettabile che un touchpad di precisione Windows abbia una superficie con digitalizzatore priva di pulsanti e invece pulsanti esterni.

Il tipo di implementazione del pulsante deve essere specificato tramite il valore per il tipo di pulsante (pagina 0x0D, utilizzo 0x59) nel report delle funzionalità del dispositivo. Se il dispositivo ha una superficie digitalizzatore senza pulsanti e si basa invece su pulsanti esterni solo per i clic del mouse, questo utilizzo può essere facoltativamente segnalato.

Nella tabella seguente vengono illustrati i valori di utilizzo del tipo di pulsante.

Valore del tipo di pulsante Implementazione
0 Depressibile (click-pad)
1 Non comprimibile (superficie sensibile alla pressione)
2 Non cliccabile (touchpad discreto)

L'host può richiedere il report delle funzionalità del dispositivo di un Windows Precision Touchpad in qualsiasi momento dopo aver letto il descrittore del report.

Report sulla funzione Stato di certificazione del dispositivo

Il report sulle funzionalità di stato della certificazione del dispositivo è richiesto dal dispositivo host di Windows Precision Touchpad per recuperare informazioni sul BLOB a 256 byte del dispositivo.

La segnalazione di un blob valido e certificato all'host è facoltativa in Windows 10, ma è necessaria per la compatibilità retroattiva con Windows 8.1. Un dispositivo che non comunica un blob PTPHQA firmato deve comunque riportare 256 byte, come nel blob di esempio seguente. I dispositivi che non segnalano un BLOB di certificazione valido non funzioneranno in Windows 8.1. Windows non interagisce con i dispositivi che usano l'utilizzo del Touchpad HID, ma non espongono uno stato di certificazione nel report sulle funzionalità del dispositivo.

Il blocco di 256 byte deve essere specificato tramite l'utilizzo specifico del fornitore in una pagina di utilizzo definita dal fornitore (Pagina 0xFF, Utilizzo 0xC5) nel report della funzionalità relativa allo stato di certificazione del dispositivo.

Prima che un dispositivo riceva un BLOB da 256 byte che indica lo stato di certificazione, deve adottare un BLOB predefinito come indicato di seguito:

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

L'host può richiedere il report sullo stato della certificazione del dispositivo di un Touchpad di Precisione Windows in qualsiasi momento dopo la lettura del descrittore del report.

Report delle funzionalità della modalità latenza

Il report della modalità Latenza viene inviato dall'host a un Windows Precision Touchpad per indicare quando è desiderabile una latenza elevata per il risparmio energetico e, viceversa, quando è preferibile una latenza normale per il funzionamento. Per i dispositivi Windows Precision Touchpad connessi tramite USB, questo consente al dispositivo di distinguere tra la sospensione per inattività (IDLE di runtime) e la sospensione perché il sistema entra in S3 o in Standby Connesso.

La modalità di latenza deve essere indicata usando il valore per l'utilizzo della modalità di latenza (pagina 0x0D, utilizzo 0x60) nel report delle funzionalità in modalità latenza. La tabella seguente illustra i valori di utilizzo della modalità di latenza.

Valore della modalità latenza Modalità di latenza
0 Latenza normale
1 Latenza elevata

Rapporti sugli input del touchpad di precisione di Windows

L'host usa gli usi nella tabella seguente per estrarre i dati dei contatti da un report di input tramite la raccolta Windows Precision Touchpad. La tabella include tutti gli utilizzi obbligatori e gli utilizzi facoltativi supportati correlati a ogni contatto univoco del digitalizzatore segnalato.

Membro Descrizione Pagina ID Obbligatorio/Facoltativo
ID contatto Identifica in modo univoco il contatto all'interno di un determinato frame. 0x0D 0x51 Obbligatorio
X Coordinata X della posizione del contatto. 0x01 0x30 Obbligatorio
Y Coordinata Y della posizione del contatto. 0x01 0x31 Obbligatorio
Suggerimento Impostare se il contatto si trova sulla superficie del digitalizzatore. 0x0D 0x42 Obbligatorio
Fiducia Impostare quando un contatto è troppo grande per essere un dito. 0x0D 0x47 Obbligatorio
Larghezza Larghezza del contorno intorno a un contatto. 0x0D 0x48 Facoltativo
Altezza Altezza del riquadro delimitatore circa un contatto. 0x0D 0x49 Facoltativo
Pressione Quantità di pressione che l'utente sta applicando al punto di contatto. 0x0D 0x30 Facoltativo
Azimut Rotazione antiorario del contatto sull'asse Z. 0x0D 0x3F Facoltativo

La tabella seguente include tutti gli utilizzi di alto livello che devono essere presenti in tutti i report di input del Windows Precision Touchpad.

Membro Descrizione Pagina ID Obbligatorio/Facoltativo
Tempo di analisi Tempo di analisi relativo. 0x0D 0x56 Obbligatorio
Conteggio contatti Numero totale di contatti da segnalare in un determinato report. 0x0D 0x54 Obbligatorio
Forza meccanica Forza totale applicata al sensore touchpad. 0x20 0x494 Facoltativo
Pulsante 1 Indica lo stato del pulsante per il touchpad integrato con il digitalizzatore. 0x09 0x01 Facoltativo
Pulsante 2 Indica lo stato del pulsante esterno per il clic primario (predefinito a sinistra). 0x09 0x02 Facoltativo
Pulsante 3 Indica lo stato del pulsante per il pulsante esterno per il clic secondario (impostazione predefinita a destra). 0x09 0x03 Facoltativo

Qualsiasi dispositivo che non segnala tutti gli utilizzi obbligatori a livello di contatto o report non funzionerà come Windows Precision Touchpad. Gli utilizzi obbligatori vengono applicati rigorosamente dall'host di Windows. Se non è stato limitato un valore massimo logico, il valore può essere ottimizzato per ridurre le dimensioni del descrittore.

Nelle sezioni seguenti vengono fornite informazioni sui membri nei report. Per informazioni sui membri del pulsante, vedere Pulsanti, Utilizzi a livello di report.

ID contatto

Identifica in modo univoco un contatto all'interno di un report per il relativo ciclo di vita. L'ID contatto deve rimanere costante mentre il contatto viene rilevato e segnalato dal dispositivo. Ogni contatto simultaneo separato deve avere un identificatore univoco. Gli identificatori possono essere riutilizzati dopo che il contatto associato in precedenza non viene più rilevato o segnalato. Non esiste alcun intervallo numerico previsto e i valori usati sono limitati solo dal massimo logico specificato nel descrittore.

X/Y

I valori X e Y segnalano le coordinate di un determinato contatto. Un Touchpad di precisione Windows deve segnalare un punto per ogni contatto. Per gli utilizzi X e Y devono essere specificati gli elementi globali seguenti:

  • Valore minimo logico e massimo logico (verificando una risoluzione di input maggiore o uguale a 300DPI).

    Nota L'intero intervallo di coordinate logiche deve essere segnalabile sia sull'asse X che su quello Y.

  • Valore minimo fisico e massimo fisico (vedere Integrazione dei dispositivi - Dimensioni).

  • Unità e esponente di unità.

  • La coordinata 0,0 (x, y values) indica l'angolo superiore sinistro del touchpad.

Suggerimento

Utilizzato per indicare quando il contatto si trova sulla superficie o ha lasciato la superficie del digitalizzatore. Questo è indicato da un elemento principale con una dimensione del report di 1 bit. Quando si recapita un rapporto di contatto, il bit deve essere impostato quando il contatto si trova sulla superficie del digitalizzatore e cancellato quando il contatto ha lasciato la superficie.

Quando viene segnalato un contatto con l'interruttore del pennino disattivato, la posizione (X, Y) segnalata deve essere la stessa dell'ultima posizione segnalata con l'interruttore del pennino attivato.

diagramma che mostra due contatti che interagiscono su un touchpad di precisione di Windows, e con i contatti che vengono sollevati, lasciando la superficie del touchpad in momenti separati.

Con riferimento all'esempio descritto nel diagramma precedente, due contatti vengono posizionati su un Touchpad Precisione Windows, successivamente, il primo contatto viene sollevato mentre il secondo rimane sulla superficie per un po' di tempo aggiuntivo. Verrà segnalato come descritto nella tabella seguente.

Rapporto 1 2 3 4 5 6 7 8 9 10 11
Conteggio contatti 2 2 2 2 2 2 1 1 1 1 1
Contatto 1: interruttore a punta 1 1 1 1 1 0 NR NR NR NR NR
Contatto 1: X, Y X₁, Y₁ X₂, Y₂ X₃, Y₃ X₄, Y₄ X₅, Y₅ X₆, Y₆ NR NR NR NR NR
Contatto 2: interruttore di punta 1 1 1 1 1 1 1 1 1 1 0
Contatto 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₁₁

Attendibilità

Utilizzato per indicare che il contatto è intenzionale. Test dei requisiti di compatibilità per assicurarsi che questo bit sia impostato su "Off" quando un contatto ha dimensioni (altezza o larghezza) maggiori di 25mm, il che implica che non è un contatto imprevisto. I dispositivi Touchpad di Precisione Windows non devono nascondere i contatti durante l'elaborazione del firmware, ma devono inoltrare tutti i contatti all'host e indicare il livello di certezza. L'host userà quindi l'affidabilità per registrare il contatto come accidentale.

Dopo che un dispositivo ha stabilito che un contatto non è intenzionale, deve cancellare il bit di fiducia per il rapporto di contatto e tutti i rapporti successivi. Fino a quando un contatto non è stato classificato come involontario, il dispositivo deve impostare il bit di attendibilità per tale contatto nel report.

Larghezza e altezza

Gli utilizzi di Width e Height rappresentano la larghezza e l'altezza del rettangolo circoscritto del contatto sul touchpad. I valori segnalati non devono mai essere zero (0) tranne quando viene segnalato un evento "UP", nel qual caso devono essere zero (0).

Pressione

La pressione è una misura della forza che il dito esercita sulla superficie del digitalizzatore. Non esistono restrizioni sull'intervallo consentito per la pressione.

Azimut

Azimuth specifica la rotazione in senso antiorario del cursore intorno all'asse Z attraverso un intervallo circolare completo. È necessario specificare l'intervallo fisico e l'intervallo logico. L'intervallo fisico deve essere compreso tra 0 e 360 o equivalente in radianti, tuttavia il dispositivo può segnalare l'intervallo completo o metà dell'intervallo presupponendo che i puntini di sospensione del contatto siano simmetrici in base alle funzionalità hardware. L'intervallo logico deve essere sufficientemente grande per recapitare dati accurati ad almeno due posizioni decimali.

Tempo di analisi

Scan Time segnala il tempo del digitalizzatore relativo in unità di 100μs. Il tempo di analisi rappresenta il delta del primo fotogramma segnalato dopo che un dispositivo inizia a segnalare i dati successivi a un periodo di inattività. Il primo tempo di analisi ricevuto viene considerato come un tempo di base per i tempi segnalati successivi. I delta tra i tempi di analisi segnalati devono riflettere la frequenza di scansione del digitalizzatore. È importante notare che, a differenza di altri utilizzi, l'host non consente alcuna flessibilità per l'unità per l'utilizzo del tempo di analisi. Deve essere in unità di 100 microsecondi. Si prevede che il rollover del valore venga eseguito, perché solo 2 byte vengono allocati al contatore.

Il valore del tempo di analisi deve essere lo stesso per tutti i contatti all'interno di un frame.

Conteggio contatti

Viene utilizzato per indicare il numero di contatti segnalati in un determinato frame indipendentemente dal commutatore di punta associato.

Forza meccanica

Viene usato per segnalare la forza totale applicata al sensore touchpad, indipendentemente dalla pressione facoltativa che può essere segnalata per le singole dita. Se la pressione viene segnalata anche per singoli contatti, le unità, l'esponente delle unità, l'intervallo fisico e l'intervallo logico devono essere rientrati per la pressione e la forza meccanica e il valore per la forza meccanica deve = SUM(Pressione per contatto 1 + Pressione per contatto 2 + .... ecc) indipendentemente dal bit di attendibilità per ognuno di questi contatti.

Pulsanti, uso a livello di report

Descrittori di report di esempio