Preskočiť na obsah

Barcode Scanner Emulator

Vysvetlenie HID keyboard wedge

Keyboard wedge je predvolený prevádzkový režim prevažnej väčšiny skenerov čiarových kódov. Táto príručka vysvetľuje, čo to je, ako to funguje na úrovni USB a čo to znamená pre testovanie vašej aplikácie.

Čo je keyboard wedge?

Pojem pochádza zo starších skenerov na sériovom porte, ktoré sa doslova „vkladali“ (wedge) medzi klávesnicu a port počítača, zachytávali signál klávesnice a vkladali doň naskenované znaky. Moderné skenery už fyzické vloženie nepotrebujú — výraz dnes označuje každý skener, ktorý odovzdáva naskenované údaje tak, akoby prišli z klávesnice, bez ohľadu na typ pripojenia.

USB HID a emulácia klávesnice

USB definuje triedu Human Interface Device (HID) určenú pre klávesnice, myši a podobné vstupné zariadenia. Keď sa skener na USB ohlási ako klávesnica HID, operačný systém načíta svoj všeobecný vstavaný ovládač klávesnice — ovládač špecifický pre skener nie je potrebný. Firmvér skenera prevádza každý dekódovaný znak na kód klávesu HID, ktorý by poslala fyzická klávesnica, a hlásenia sa doručujú rovnakým mechanizmom prerušovacieho prenosu ako pri ľubovoľnej klávesnici USB.

Ako vaša aplikácia vidí vstup zo skenera

Rýchla dávka stlačení oproti ľudskému písaniu: skener odošle celý obsah ako rýchlu postupnosť párov keydown/keyup a spravidla skončí do jednej sekundy bez ohľadu na dĺžku čiarového kódu.

Žiadne udalosti myši: skenery v režime klávesnice HID nikdy negenerujú udalosti ukazovateľa, kliknutia ani fokusu. Ak pole pri skenovaní nemá fokus, vstup sa stratí alebo skončí v prvku, ktorý fokus má.

Žiadne udalosti prilepenia: údaje prichádzajú ako jednotlivé stlačenia klávesov, nie ako operácia schránky, takže obsluhy udalosti paste vstup zo skenera neuvidia a vstupná maska, ktorá počúva len na paste, ho potichu minie.

Problémy s rozložením klávesnice

Prečo sa objavujú nesprávne znaky: skener mapuje dekódované znaky na kódy klávesov HID podľa vlastného nastaveného rozloženia klávesnice. Ak toto rozloženie nezodpovedá rozloženiu v operačnom systéme, znaky sa môžu prehodiť — klasickým príznakom je, že číslice alebo interpunkcia sa na systémoch QWERTY a AZERTY naskenujú ako nesprávny znak.

Nesúlad locale: ide o problém konfigurácie na strane skenera, nie o chybu softvéru. Väčšina skenerov podporuje prepínanie locale konfiguračnými čiarovými kódmi vytlačenými v návode a oprava znamená preprogramovať skener tak, aby zodpovedal locale operačného systému, nie meniť kód aplikácie.

Predpony a prípony

Skenery bežne podporujú nastaviteľné postupnosti predpony a prípony okolo údajov. Najčastejšie hodnoty prípony sú ENTER (CR, 0x0D), TAB (0x09) a občas celý pár CR+LF. Predpony sú menej časté, no niekedy sa používajú na smerovanie skenov do konkrétnych polí v starších terminálových aplikáciách.

Obmedzenia testovania v prehliadači

Prehliadač nevidí surové pakety USB HID, nedokáže vymenovať pripojené zariadenia HID konkrétne ako skener (mimo rozhrania WebHID API, cez ktoré väčšina skenerov údaje nesprístupňuje) a nedokáže odlíšiť skener v režime klávesnice HID od skutočnej klávesnice. JavaScript má prístup len k udalostiam klávesnice viditeľným v prehliadači (keydown, keyup, keypress), a práve tie skúmajú nástroje na tomto webe.

Súvisiace

Pomocou testera udalostí klávesnice skontrolujte surové udalosti klávesnice alebo si prečítajte príručku Prípony ENTER a TAB s podrobnosťami o konfigurácii prípony.