Preskoči na vsebino

Barcode Scanner Emulator

Razlaga HID keyboard wedge

Keyboard wedge je privzeti način delovanja velike večine čitalnikov črtnih kod. Ta vodnik pojasni, kaj to je, kako deluje na ravni USB in kaj to pomeni za preizkušanje vaše aplikacije.

Kaj je keyboard wedge?

Izraz izvira iz starejših čitalnikov na zaporednih vratih, ki so bili dobesedno »vrinjeni« med tipkovnico in vrata računalnika, prestregli signal tipkovnice in vanj vstavili prebrane znake. Sodobni čitalniki fizičnega vrivanja ne potrebujejo več — besedna zveza danes označuje vsak čitalnik, ki prebrane podatke predstavi, kot da prihajajo s tipkovnice, ne glede na vrsto povezave.

USB HID in emulacija tipkovnice

USB opredeljuje razred Human Interface Device (HID) posebej za tipkovnice, miške in podobne vhodne naprave. Ko se čitalnik na USB prijavi kot tipkovnica HID, operacijski sistem naloži svoj splošni vgrajeni gonilnik tipkovnice — gonilnik, poseben za čitalnik, ni potreben. Strojna programska oprema čitalnika vsak dekodirani znak pretvori v kodo tipke HID, ki bi jo poslala fizična tipkovnica, poročila pa se dostavijo z istim mehanizmom prekinitvenega prenosa kot pri kateri koli tipkovnici USB.

Kako aplikacija vidi vnos čitalnika

Hiter niz pritiskov v primerjavi s človeškim tipkanjem: čitalnik pošlje celotno vsebino kot hitro zaporedje parov keydown/keyup in običajno konča v manj kot sekundi, ne glede na dolžino črtne kode.

Ni dogodkov miške: čitalniki v načinu tipkovnice HID nikoli ne ustvarijo dogodkov kazalca, klika ali fokusa. Če polje ob branju nima fokusa, se vnos izgubi ali pristane v elementu, ki fokus ima.

Ni dogodkov lepljenja: ker podatki prispejo kot posamezni pritiski tipk in ne kot operacija odložišča, obravnalniki dogodka paste vnosa čitalnika ne vidijo, vhodna maska, ki posluša samo paste, pa ga tiho zgreši.

Težave s postavitvijo tipkovnice

Zakaj se pojavijo napačni znaki: čitalnik preslika dekodirane znake v kode tipk HID po svoji nastavljeni postavitvi tipkovnice. Če se ta postavitev ne ujema s postavitvijo v operacijskem sistemu, se lahko znaki zamenjajo — klasičen znak je, da se števke ali ločila na sistemih QWERTY in AZERTY preberejo kot napačen znak.

Neujemanje jezika: to je težava nastavitve na strani čitalnika, ne napaka programske opreme. Večina čitalnikov podpira preklop jezika s konfiguracijskimi črtnimi kodami, natisnjenimi v priročniku, popravek pa pomeni ponovno programiranje čitalnika, da se ujema z jezikom operacijskega sistema, ne spreminjanje kode aplikacije.

Predpone in pripone

Čitalniki običajno podpirajo nastavljiva zaporedja predpone in pripone okoli podatkov. Najpogostejše vrednosti pripone so ENTER (CR, 0x0D), TAB (0x09) in občasno cel par CR+LF. Predpone so manj pogoste, včasih pa se uporabljajo za usmerjanje branj v določena polja v starejših terminalskih aplikacijah.

Omejitve preizkušanja v brskalniku

Brskalnik ne vidi surovih paketov USB HID, ne more našteti priključenih naprav HID posebej kot čitalnika (zunaj vmesnika WebHID API, prek katerega večina čitalnikov podatkov ne izpostavlja) in ne more ločiti čitalnika v načinu tipkovnice HID od prave tipkovnice. JavaScriptu so dostopni samo dogodki tipkovnice, vidni v brskalniku (keydown, keyup, keypress), in prav te pregledujejo orodja na tem spletnem mestu.

Povezano

Z preizkuševalnikom dogodkov tipkovnice preglejte surove dogodke tipkovnice ali preberite vodnik Pripone ENTER in TAB za podrobnosti o nastavitvi pripone.