Selezione delle modalità di creazione di report dei pacchetti nei dispositivi multi-tocco

A partire da Windows 8, la creazione di report di dati multi-tocco al sistema è supportata in due modi: modalità parallela o modalità ibrida. Il descrittore di report HID fornito dal fornitore è diverso, a seconda della modalità selezionata.

Nota La modalità seriale è selezionata solo dai dispositivi legacy. Tutti i nuovi dispositivi che usano la modalità seriale avranno esito negativo a partire dalla certificazione Windows 8.

Modalità parallela

In modalità parallela, i dispositivi segnalano tutte le informazioni di contatto in un singolo pacchetto. Ogni contatto fisico è rappresentato da una raccolta logica incorporata nella raccolta di primo livello. Questa raccolta logica contiene tutti gli usi supportati dal dispositivo per ogni contatto, ad esempio X, Y e Pressure. Quando si sfrutta la modalità parallela, ognuna delle raccolte logiche deve essere identica. Poiché il dispositivo segnala in genere meno contatti rispetto al massimo, il numero di contatti segnalati in un pacchetto parallelo deve essere comunicato nell'utilizzo del conteggio contatti o impostando valori NULL per tutti i contatti non validi in un pacchetto.

Si consideri ad esempio un dispositivo che supporta tre contatti. Se l'utente ha solo due dita sul digitalizzatore, il pacchetto parallelo ha solo due dati di contatto validi in un report che può trasportare dati per tre contatti. In questo caso, il conteggio contatti deve essere impostato su 2 in modo che l'applicazione client sappia che eventuali informazioni su più di due contatti non sono valide.

In alternativa, il dispositivo può impostare i valori degli usi del contatto oltre la seconda voce sui valori NULL . Considerando il sovraccarico per supportare e segnalare valori NULL , è consigliabile usare il conteggio effettivo.

Uno svantaggio della segnalazione di più contatti in un report è che lo spazio viene sprecato per ogni report ogni volta che sono presenti meno contatti rispetto al numero massimo di contatti possibili. I dispositivi possono usare la modalità ibrida per ridurre questa inefficacia.

Modalità ibrida

In modalità ibrida il numero di contatti che possono essere segnalati in un report è minore del numero massimo di contatti supportati dal dispositivo. Ad esempio, un dispositivo che supporta un massimo di 48 contatti fisici simultanei può configurare la raccolta di primo livello per fornire un massimo di 12 contatti in un report. Se sono presenti 48 punti di contatto, il dispositivo può suddividerli in 4 report seriali che recapitano 12 contatti.

Quando un dispositivo fornisce dati in questo modo, il valore di utilizzo del conteggio dei contatti nel primo report deve riflettere il numero totale di contatti recapitati nei report ibridi. Gli altri report seriali devono avere un numero di contatti pari a 0. Usando l'esempio precedente, l'utilizzo del conteggio contatti nel primo report ha un valore pari a 48, mentre gli ultimi tre report hanno un numero di utilizzo dei contatti pari a 0. A causa di questo protocollo di recapito dei dati, l'utilizzo effettivo del conteggio deve essere presente nel report di input del descrittore del report per il dispositivo.

Valori Null

I valori Null devono essere specificati come descritto nella specifica HID. Il bit NULL deve essere impostato su tutti gli elementi principali del descrittore del report. Tenere presente che un dispositivo può usare l'utilizzo del conteggio contatti o i valori NULL per notificare all'host il numero effettivo di contatti validi in un pacchetto.

Contatti in un report

Quando si inviano dati in modalità ibrida o parallela, un contatto recapitato in un report deve essere recapitato in tutti i report successivi finché non viene rimosso dallo schermo. Se il tempo è necessario per determinare adeguatamente se il contatto è stato rimosso dalla superficie, il dispositivo deve segnalare l'ultima posizione nota del contatto e quindi recapitare lo stato "UP" del contatto in un report successivo. I dispositivi non devono inviare un report senza le informazioni per tale contatto durante il tentativo di determinare lo stato corrente.