Naar inhoud springen

Barcode Scanner Emulator

Uitleg HID-toetsenbordwig

De toetsenbordwig is de standaardwerkmodus van het overgrote deel van de barcodescanners. Deze handleiding legt uit wat het is, hoe het op USB-niveau werkt en wat het betekent voor het testen van de toepassing.

Wat is een toetsenbordwig?

De term komt van oudere scanners op een seriële poort die letterlijk tussen een toetsenbord en de computerpoort werden "gewigd", het toetsenbordsignaal onderschepten en gescande tekens erin injecteerden. Moderne scanners hebben geen fysieke wig meer nodig. De uitdrukking verwijst nu naar elke scanner die gescande gegevens presenteert alsof ze van een toetsenbord komen, ongeacht het verbindingstype.

USB HID en toetsenbordemulatie

USB definieert een Human Interface Device-klasse (HID) speciaal voor toetsenborden, muizen en vergelijkbare invoerapparaten. Wanneer een scanner zich via USB als HID-toetsenbord aanmeldt, laadt het besturingssysteem het generieke, ingebouwde toetsenbordstuurprogramma. Een scannerspecifiek stuurprogramma is niet nodig. De firmware van de scanner zet elk gedecodeerd teken om in de HID-toetscode die een fysiek toetsenbord zou sturen, en rapporten worden geleverd via hetzelfde interruptmechanisme als elk USB-toetsenbord.

Hoe de toepassing scannerinvoer ziet

Snelle reeks toetsaanslagen tegenover menselijk typen: een scanner stuurt de volledige gegevens als een snelle reeks keydown/keyup-paren en is doorgaans binnen een seconde klaar, ongeacht de lengte van de barcode.

Geen muisgebeurtenissen: scanners in HID-toetsenbordmodus genereren nooit pointer-, klik- of focusgebeurtenissen. Als het veld geen focus heeft op het moment van scannen, gaat de invoer verloren of naar het element dat wél focus heeft.

Geen plakgebeurtenissen: omdat de gegevens als afzonderlijke toetsaanslagen binnenkomen en niet als klembordbewerking, zien paste-afhandelaars de scannerinvoer niet, en invoermaskers die alleen naar paste luisteren missen die stilzwijgend.

Problemen met toetsenbordindeling

Waarom verkeerde tekens verschijnen: de scanner koppelt gedecodeerde tekens aan HID-toetscodes met de eigen ingestelde toetsenbordindeling. Als die indeling niet overeenkomt met de toetsenbordindeling van het besturingssysteem, kunnen tekens worden verwisseld. Een klassiek symptoom is dat cijfers of leestekens op QWERTY- versus AZERTY-systemen als het verkeerde teken worden gescand.

Verschil in landinstelling: dit is een configuratieprobleem aan de scannerkant, geen softwarefout. De meeste scanners ondersteunen het wisselen van landinstelling via configuratiebarcodes in de handleiding. Oplossen betekent de scanner herprogrammeren zodat die overeenkomt met de landinstelling van het besturingssysteem, niet de toepassingscode wijzigen.

Voorvoegsels en achtervoegsels

Scanners ondersteunen doorgaans instelbare voor- en achtervoegselreeksen rond de gegevens. De meest voorkomende achtervoegsels zijn ENTER (CR, 0x0D), TAB (0x09) en soms een volledig CR+LF-paar. Voorvoegsels zijn minder gebruikelijk, maar worden soms gebruikt om scans naar specifieke velden in oudere terminaltoepassingen te sturen.

Beperkingen voor testen in de browser

Een browser kan geen ruwe USB HID-pakketten zien, kan verbonden HID-apparaten niet specifiek als scanner opsommen (buiten de WebHID-API, waar de meeste scanners geen gegevens via blootstellen) en kan een scanner in HID-toetsenbordmodus niet van een echt toetsenbord onderscheiden. Alleen voor de browser zichtbare toetsenbordgebeurtenissen (keydown, keyup, keypress) zijn beschikbaar voor JavaScript, en dat is precies wat de hulpmiddelen op deze site inspecteren.

Gerelateerd

Gebruik de toetsenbordevenemententester om ruwe toetsenbordgebeurtenissen te inspecteren, of lees de handleiding ENTER- en TAB-achtervoegsels voor details over achtervoegselconfiguratie.