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.