Zum Inhalt springen

Barcode Scanner Emulator

HID-Tastatur-Wedge erklärt

Der Tastatur-Wedge ist der Standardbetriebsmodus der überwiegenden Mehrheit aller Barcodescanner. Dieser Leitfaden erklärt, was er ist, wie er auf USB-Ebene funktioniert und was er für das Testen Ihrer Anwendung bedeutet.

Was ist ein Tastatur-Wedge?

Der Begriff stammt von älteren Scannern an seriellen Schnittstellen, die buchstäblich zwischen Tastatur und Computeranschluss „eingekeilt“ waren, das Tastatursignal abfingen und gescannte Zeichen hineinschoben. Moderne Scanner brauchen kein physisches Einkeilen mehr — der Ausdruck bezeichnet heute jeden Scanner, der gescannte Daten so ausgibt, als kämen sie von einer Tastatur, unabhängig von der Anschlussart.

USB HID und Tastaturemulation

USB definiert eine Human-Interface-Device-Klasse (HID) speziell für Tastaturen, Mäuse und ähnliche Eingabegeräte. Wenn sich ein Scanner am USB als HID-Tastatur anmeldet, lädt das Betriebssystem seinen allgemeinen, integrierten Tastaturtreiber — ein scannerspezifischer Treiber ist nicht erforderlich. Die Firmware des Scanners wandelt jedes dekodierte Zeichen in den HID-Tastencode um, den eine physische Tastatur senden würde, und die Berichte werden über denselben Interrupt-Transfer übertragen, den jede USB-Tastatur nutzt.

Wie Ihre Anwendung die Scanner-Eingabe sieht

Schneller Tastenstoß statt menschlichem Tippen: Ein Scanner sendet die gesamte Nutzlast als rasche Folge von keydown/keyup-Paaren und ist typischerweise in unter einer Sekunde fertig, unabhängig von der Länge des Barcodes.

Keine Mausereignisse: Scanner im HID-Tastaturmodus erzeugen nie Zeiger-, Klick- oder Fokusereignisse. Wenn Ihr Feld beim Scan nicht fokussiert ist, geht die Eingabe verloren oder landet bei dem Element, das den Fokus hat.

Keine Einfügeereignisse: Weil die Daten als einzelne Tastenanschläge ankommen und nicht als Zwischenablage-Vorgang, sehen Handler für das Ereignis paste die Scanner-Eingabe nicht, und Eingabemasken, die nur auf paste hören, verpassen sie stillschweigend.

Probleme mit dem Tastaturlayout

Warum falsche Zeichen erscheinen: Der Scanner ordnet dekodierte Zeichen anhand seines eigenen konfigurierten Tastaturlayouts HID-Tastencodes zu. Stimmt dieses Layout nicht mit dem Tastaturlayout des Betriebssystems überein, können Zeichen vertauscht werden — ein klassisches Symptom ist, dass Ziffern oder Satzzeichen auf QWERTY- und AZERTY-Systemen als das falsche Zeichen gescannt werden.

Abweichende Locale: Das ist ein Konfigurationsproblem auf der Scannerseite, kein Softwarefehler. Die meisten Scanner unterstützen den Wechsel der Locale über Konfigurationsbarcodes in der Anleitung, und die Korrektur besteht darin, den Scanner auf die Locale des Betriebssystems umzuprogrammieren, nicht den Anwendungscode zu ändern.

Präfixe und Suffixe

Scanner unterstützen häufig konfigurierbare Präfix- und Suffixfolgen um die Nutzlast. Die häufigsten Suffixwerte sind ENTER (CR, 0x0D), TAB (0x09) und gelegentlich ein vollständiges CR+LF-Paar. Präfixe sind seltener, werden aber manchmal genutzt, um Scans in älteren Terminalanwendungen in bestimmte Felder zu lenken.

Grenzen beim Testen im Browser

Ein Browser kann keine rohen USB-HID-Pakete sehen, kann angeschlossene HID-Geräte nicht gezielt als Scanner aufzählen (außer über die WebHID-API, über die die meisten Scanner keine Daten bereitstellen) und kann einen Scanner im HID-Tastaturmodus nicht von einer echten Tastatur unterscheiden. Für JavaScript zugänglich sind nur die im Browser sichtbaren Tastaturereignisse (keydown, keyup, keypress), und genau die untersuchen die Werkzeuge auf dieser Website.

Verwandtes

Verwenden Sie den Tastaturereignis-Tester, um rohe Tastaturereignisse zu untersuchen, oder lesen Sie den Leitfaden Suffixe ENTER und TAB zu den Details der Suffix-Konfiguration.