Auswählen von Paketberichterstattungs-Modi bei Multitouchtreibern (Windows 7)
Windows unterstützt drei Möglichkeiten zum Melden von Multitouchdaten an das System: serieller Modus, paralleler Modus und Hybridmodus. Der vom Anbieter bereitgestellte HID-Berichtdeskriptor unterscheidet sich je nach ausgewähltem Modus.
Anbieter sollten Hybrid- oder Parallelmodus verwenden, da diese Modi die Effizienz der Datenbereitstellung von Betriebssystemkomponenten an Anwendungen verbessern können.
Serieller Modus
Jedes Paket enthält Informationen, die einen einzelnen physischen Kontaktpunkt beschreiben. Mehrere Kontakte werden seriell gestreamt.
In diesem Modus melden Geräte alle Kontaktinformationen in einer Reihe von Paketen. Jedes Paket enthält Informationen, die einen einzelnen physischen Kontakt beschreiben. Das Gerät sendet ein separates Paket für jeden parallelen Kontakt.
Wenn beispielsweise zwei Finger nach unten weisen, sendet ein Gerät, das den seriellen Modus verwendet, ein Update für den ersten Kontakt, und dann ein Update für den zweiten Kontakt. Dieser Prozess wird wiederholt, solange beide Finger mit dem Digitalisierer in Kontakt stehen.
Der serielle Modus kann die effektive Berichtsgeschwindigkeit für jeden physischen Kontakt auf dem Gerät verringern. Wenn z. B. ein Gerät ein Update jede Millisekunde (ms) einmal senden kann und zwei physische Kontakte vorhanden sind, wird jeder Kontaktpunkt nur alle 2 ms aktualisiert.
Ein Beispiel für einen Berichtsdeskriptor im seriellen Modus finden Sie unter Beispiel für Berichtsdeskriptor (serieller Berichterstattungsmodus).
Im Vergleich profitieren Hybrid- und Parallelberichtsmodus von einem reduzierten Datenübermittlungs-Mehraufwand.
Parallelmodus
Im Parallelmodus melden Geräte alle Kontaktinformationen in einem einzelnen Paket. Jeder physische Kontakt wird durch eine logische Sammlung dargestellt, die in die Sammlung auf oberster Ebene eingebettet ist. Diese logische Sammlung enthält alle Verwendungen, die das Gerät für die einzelnen Kontakte unterstützt (z. B. X, Y und Druck). Da das Gerät im Allgemeinen weniger Kontakte als das Maximum meldet, sollte die Anzahl von Kontakten, die in einem parallelen Paket gemeldet werden, entweder in der Kontaktanzahlnutzung kommuniziert werden, oder indem NULL-Werte für alle ungültigen Kontakte in einem Paket festgelegt werden.
Stellen Sie sich ein Gerät vor, das drei Kontakte unterstützt. Wenn der Benutzer derzeit nur zwei Finger auf dem Digitalisierer hat, verfügt das parallele Paket nur über zwei gültige Kontaktdaten in einem Paket, das Daten für drei Kontakte übertragen kann. In diesem Fall sollte die Kontaktanzahl auf zwei festgelegt werden, damit die Clientanwendung weiß, dass alle Informationen zu mehr als zwei Kontakten ungültig sind.
Alternativ kann das Gerät die Werte der Kontaktnutzungen über den zweiten Eintrag hinaus auf NULL-Werte festlegen. Die Clientanwendung kann die tatsächlichen Kontakte entweder erkennen, indem der Wert der Kontaktanzahlnutzung untersucht wird oder die Daten gelesen werden, bis ein NULL-Wert auftritt.
Einen Beispiel-Parallelmodus-Berichtsdeskriptor finden Sie unter Beispiel für Berichtsdeskriptor(Parallel-/Hybridmodus).
Ein Nachteil beim Melden mehrerer Kontakte in einem Paket besteht darin, dass jedes Mal, wenn weniger Kontakte gemeldet werden als die maximale Anzahl möglicher Kontakte, Speicherplatz pro Paket verschwendet wird. Geräte können den Hybridberichtsmodus verwenden, um diese Ineffizienz zu verringern.
Hybridmodus
Im Hybridmodus ist die Anzahl der Kontakte, die in einem Paket gemeldet werden können, kleiner als die maximale Anzahl von Kontakten, die das Gerät unterstützt. Ein Gerät, das beispielsweise maximal 48 gleichzeitige physische Kontakte unterstützt, kann seine Sammlung auf oberster Ebene zur Meldung von maximal 12 Kontakten in einem Paket einrichten. Wenn derzeit 48 Kontaktpunkte gültig sind, kann das Gerät diese in 4 serielle Pakete aufteilen, die jeweils 12 Kontakte melden.
Wenn ein Gerät auf diese Weise Daten meldet, sollte der Kontaktanzahlnutzungs-Wert im ersten Paket die Gesamtzahl der Kontakte widerspiegeln, die in den Hybridpaketen gemeldet werden. In den anderen seriellen Pakete sollte die Kontaktanzahl 0 betragen. Im vorherigen Beispiel weist die Kontaktanzahlnutzung im ersten Paket einen Wert von 48 auf, während die letzten drei Pakete eine Kontaktanzahlnutzung von 0 aufweisen.
Hybrid- und Parallelberichtsmodus haben den Vorteil, dass der Datenübermittlungs-Mehraufwand verringert wird.
Einen Beispiel-Hybridmodus-Berichtsdeskriptor finden Sie unter Beispiel für Berichtsdeskriptor(Parallel-/Hybridmodus).
NULL-Werte
NULL-Werte sollten wie in der HID-Spezifikation beschrieben angegeben werden. Das NULL-Bit muss für alle Hauptelemente im Berichtsdeskriptor festgelegt werden. Beachten Sie, dass ein Gerät entweder die Kontaktanzahlnutzung oder NULL-Werte verwenden kann, um dem Host die tatsächliche Anzahl gültiger Kontakte in einem Paket zu melden.