Hopp til innhold

Barcode Scanner Emulator

Forklaring av HID-tastaturkile

Tastaturkile er standard driftsmodus for det store flertallet av strekkodeskannere. Denne veiledningen forklarer hva det er, hvordan det virker på USB-nivå, og hva det betyr når du tester programmet.

Hva er en tastaturkile?

Begrepet kommer fra eldre serieportskannere som bokstavelig talt ble «kilt» (wedged) inn mellom et tastatur og datamaskinporten, fanget opp tastatursignalet og sprøytet inn skannede tegn. Moderne skannere trenger ikke fysisk kiling. Uttrykket betyr nå enhver skanner som presenterer skannede data som om de kom fra et tastatur, uansett tilkoblingstype.

USB HID og tastaturemulering

USB definerer en Human Interface Device-klasse (HID) spesielt for tastaturer, mus og lignende inndataenheter. Når en skanner telles opp på USB som et HID-tastatur, laster operativsystemet den generiske, innebygde tastaturdriveren. Ingen skannerspesifikk driver trengs. Skannerens fastvare gjør hvert dekodet tegn om til HID-tastekoden et fysisk tastatur ville sendt, og rapportene leveres med samme avbruddsoverføring som ethvert USB-tastatur.

Slik ser programmet skannerinndata

Rask byge av tastetrykk mot menneskelig skriving: en skanner sender hele lasten som en rask rekke keydown/keyup-par og er vanligvis ferdig på under ett sekund, uansett strekkodelengde.

Ingen musehendelser: skannere i HID-tastaturmodus lager aldri peker-, klikk- eller fokushendelser. Hvis feltet ikke har fokus når skanningen skjer, går inndata tapt eller til det elementet som faktisk har fokus.

Ingen limehendelser: fordi dataene kommer som enkelttastetrykk og ikke som en utklippsoperasjon, ser ikke paste-behandlere skannerinndata, og inndatamasker som bare lytter etter paste, går glipp av dem i stillhet.

Problemer med tastaturoppsett

Hvorfor feil tegn dukker opp: skanneren kobler dekodede tegn til HID-tastekoder med sitt eget konfigurerte tastaturoppsett. Hvis oppsettet ikke samsvarer med operativsystemets tastaturoppsett, kan tegn byttes om. Et klassisk symptom er at sifre eller tegnsetting skannes som feil tegn på QWERTY- mot AZERTY-systemer.

Avvik i språkinnstilling: dette er et konfigurasjonsproblem på skannersiden, ikke en programfeil. De fleste skannere støtter bytte av språkinnstilling via konfigurasjonsstrekkoder i håndboken, og rettingen er å omprogrammere skanneren slik at den matcher operativsystemets språkinnstilling, ikke å endre programkoden.

Prefikser og suffikser

Skannere støtter vanligvis konfigurerbare prefiks- og suffikssekvenser rundt lasten. De vanligste suffiksverdiene er ENTER (CR, 0x0D), TAB (0x09) og av og til et fullt CR+LF-par. Prefikser er mindre vanlige, men brukes noen ganger til å styre skanninger til bestemte felt i eldre terminalprogrammer.

Begrensninger for testing i nettleseren

En nettleser kan ikke se rå USB HID-pakker, kan ikke telle opp tilkoblede HID-enheter spesifikt som en skanner (utenom WebHID-API-et, som de fleste skannere ikke eksponerer data gjennom), og kan ikke skille en skanner i HID-tastaturmodus fra et ekte tastatur. Bare tastaturhendelser som nettleseren ser (keydown, keyup, keypress), er tilgjengelige for JavaScript, og det er nettopp det verktøyene på dette nettstedet undersøker.

Relatert

Bruk tastaturhendelsestesten til å undersøke rå tastaturhendelser, eller les veiledningen ENTER- og TAB-suffikser for detaljer om suffikskonfigurasjon.