Barcode Scanner Emulator
HID-tastaturkile forklaret
Tastaturkilen er standarddriftstilstanden for det store flertal af stregkodescannere. Denne vejledning forklarer, hvad den er, hvordan den virker på USB-niveau, og hvad den betyder for test af din applikation.
Hvad er en tastaturkile?
Begrebet stammer fra ældre scannere på serielle porte, som bogstaveligt blev "kilet" ind mellem et tastatur og computerens port, opfangede tastatursignalet og indsatte scannede tegn i det. Moderne scannere behøver ikke en fysisk kile — udtrykket dækker nu enhver scanner, der afleverer scannede data, som om de kom fra et tastatur, uanset forbindelsestype.
USB HID og tastaturemulering
USB definerer en Human Interface Device-klasse (HID) specielt til tastaturer, mus og lignende inputenheder. Når en scanner tælles op på USB som et HID-tastatur, indlæser operativsystemet sin generiske, indbyggede tastaturdriver — der kræves ingen scannerspecifik driver. Scannerens firmware omsætter hvert afkodet tegn til den HID-tastekode, et fysisk tastatur ville sende, og rapporterne leveres over den samme interrupt-overførsel, som ethvert USB-tastatur bruger.
Sådan ser din applikation scannerinput
Hurtig byge af tastetryk frem for menneskelig indtastning: En scanner sender hele nyttelasten som en hurtig række af keydown/keyup-par og er typisk færdig på under et sekund, uanset stregkodens længde.
Ingen musehændelser: Scannere i HID-tastaturtilstand genererer aldrig markør-, klik- eller fokushændelser. Hvis dit felt ikke har fokus, når scanningen sker, går inputtet tabt eller havner i det element, der har fokus.
Ingen indsæt-hændelser: Fordi dataene ankommer som enkelte tastetryk og ikke som en udklipsholderhandling, ser handlere for hændelsen paste ikke scannerinput, og inputmasker, der kun lytter efter paste, overser det i stilhed.
Problemer med tastaturlayout
Hvorfor der kommer forkerte tegn: Scanneren knytter afkodede tegn til HID-tastekoder ud fra sit eget konfigurerede tastaturlayout. Hvis det layout ikke matcher operativsystemets tastaturlayout, kan tegn byttes om — et klassisk symptom er, at cifre eller tegnsætning scannes som det forkerte tegn på QWERTY- kontra AZERTY-systemer.
Lokaleforskel: Det er et konfigurationsproblem på scannersiden, ikke en softwarefejl. De fleste scannere understøtter skift af locale via konfigurationsstregkoder i manualen, og løsningen er at omprogrammere scanneren, så den matcher operativsystemets locale, ikke at ændre applikationskoden.
Præfikser og suffikser
Scannere understøtter ofte konfigurerbare præfiks- og suffikssekvenser omkring nyttelasten. De mest almindelige suffiksværdier er ENTER (CR, 0x0D), TAB (0x09) og af og til et helt CR+LF-par. Præfikser er mindre almindelige, men bruges nogle gange til at sende scanninger til bestemte felter i ældre terminalapplikationer.
Begrænsninger ved browsertest
En browser kan ikke se rå USB-HID-pakker, kan ikke tælle tilsluttede HID-enheder op som en scanner specifikt (ud over WebHID-API'en, som de fleste scannere ikke eksponerer data gennem) og kan ikke skelne en scanner i HID-tastaturtilstand fra et rigtigt tastatur. Kun de tastaturhændelser, browseren kan se (keydown, keyup, keypress), er tilgængelige for JavaScript, og det er netop dem, værktøjerne på dette websted undersøger.
Relateret
Brug Tastaturhændelsestesteren til at undersøge rå tastaturhændelser, eller læs vejledningen ENTER- og TAB-suffikser for detaljer om suffikskonfiguration.