Zum Inhalt springen

Barcode Scanner Emulator

Wie Barcodescanner funktionieren

Ein Barcode-Scan wirkt augenblicklich, umfasst aber vier klar getrennte Phasen zwischen dem physischen Barcode und dem Zeichen, das in Ihrer Anwendung landet. Wer jede Phase versteht, kann scannerbedingte Fehler viel leichter eingrenzen.

Die vier Phasen eines Barcode-Scans

1. Beleuchtung und Bildaufnahme

Laserscanner führen einen Strahl über den Barcode und messen die Intensität des reflektierten Lichts. Bildbasierte Scanner (die meisten modernen Handscanner und Smartphone-Kameras) erfassen ein 2D-Bild des Barcodes mit einem kleinen CMOS-Sensor, vergleichbar mit einer Kamera niedriger Auflösung.

2. Dekodierung

Die Firmware im Gerät analysiert die Strichbreiten (oder das 2D-Bild bei QR- und Data-Matrix-Codes) und dekodiert sie zur ursprünglichen digitalen Nutzlast, mit dem Algorithmus der jeweiligen Symbologie — Code 128, Code 39, EAN-13, QR und so weiter. Das geschieht vollständig im Scanner, bevor irgendwelche Daten Ihren Computer erreichen.

3. Kommunikation

Die dekodierte Nutzlast wird an den Host-Computer übertragen. Der Transportweg ist in der Regel USB, und die große Mehrheit der Consumer- und Industriescanner meldet sich beim Betriebssystem als USB-HID-Tastatur und nicht als eigene USB-Klasse. Manche Scanner unterstützen alternative Modi wie USB-seriell (COM-Port-Emulation) oder Bluetooth-HID, der Tastatur-Emulationsmodus ist aber bei nahezu jedem heute verkauften Scanner die Voreinstellung.

4. Anwendungseingabe

Weil der Scanner als Tastatur auftritt, übergibt das Betriebssystem die Nutzlast als Folge von Tastenereignissen an die Anwendung, die gerade den Tastaturfokus hat. Ihre Anwendung spricht nie direkt mit dem Scanner — sie empfängt nur Tastenanschläge, genau so, als hätte jemand sehr schnell getippt.

Warum sich die meisten Scanner wie Tastaturen verhalten

Der HID-Tastaturmodus ist die Standardkonfiguration bei fast allen handelsüblichen Barcodescannern, weil keine Treiberinstallation nötig ist. Jedes Betriebssystem, das eine USB-Tastatur unterstützt, unterstützt den Scanner sofort.

USB-Tastaturemulation bedeutet, dass die Firmware des Scanners jedes dekodierte Zeichen dem USB-HID-Tastencode zuordnet, den eine Tastatur für dieses Zeichen senden würde, und anschließend normale HID-Tastaturberichte über den USB-Interrupt-Endpunkt überträgt.

Warum das beim Testen wichtig ist: Da der Scanner auf Anwendungsebene von einer Tastatur nicht zu unterscheiden ist, können Sie einen großen Teil des scannergetriebenen Verhaltens testen, indem Sie schnell in ein fokussiertes Feld tippen oder ein Browser-Werkzeug verwenden, das Tastaturereignisse untersucht (siehe die unten verlinkten Werkzeuge).

Suffixe ENTER und TAB

Die meisten Scanner sind so konfiguriert, dass sie nach der dekodierten Nutzlast einen Suffix-Tastenanschlag anhängen, am häufigsten ENTER (Wagenrücklauf, 0x0D), manchmal aber TAB (0x09) oder eine eigene Folge. Damit kann die empfangende Anwendung erkennen, wo der gescannte Wert endet, ohne auf ein Zeitlimit angewiesen zu sein — der Suffix wirkt als Absendesignal, ähnlich dem Drücken von Enter nach der Eingabe in ein Textfeld.

Timing des Scanners

Ein Scanner überträgt eine komplette Barcode-Nutzlast in deutlich unter einer Sekunde, oft mit Lücken von wenigen Millisekunden zwischen den Zeichen. Wer dieselbe Zeichenfolge von Hand tippt, hat meist Lücken von 100–300 ms oder mehr zwischen den Tastenanschlägen. Dieser Zeitunterschied ist die Grundlage der „Scanner-Erkennung“ in vielen POS- und Lageranwendungen, die auf ungewöhnlich schnelle Eingabestöße achten, auf die sofort eine Suffix-Taste folgt.

Für Ihre Anwendung heißt das: Wenn Sie Scanner-Eingabe vom manuellen Tippen unterscheiden wollen, messen Sie die Zeit zwischen den Tastenanschlägen, statt nach einem besonderen Kennzeichen zu suchen. Normale Tastaturereignisse im Browser enthalten keine Information über die Eingabequelle.

Selbst ausprobieren

Verwenden Sie den Barcode-Eingabetester, um einen echten Barcode zu scannen und den erfassten Wert, das Timing und die Suffix-Erkennung in Echtzeit zu sehen. Für eine genauere Betrachtung des Tastatur-Wedge-Verhaltens geht es weiter mit HID-Tastatur-Wedge erklärt.