Barcode Scanner Emulator
Vysvětlení klávesnicového klínu HID
Klávesnicový klín je výchozí provozní režim naprosté většiny čteček čárových kódů. Tato příručka vysvětluje, co to je, jak to funguje na úrovni USB a co to znamená při testování aplikace.
Co je klávesnicový klín?
Pojem pochází ze starších čteček na sériovém portu, které se doslova „vklínily“ mezi klávesnici a port počítače, zachytily signál klávesnice a vložily do něj naskenované znaky. Moderní čtečky fyzické vklínění nepotřebují — výraz dnes označuje každou čtečku, která předává naskenovaná data, jako by přišla z klávesnice, bez ohledu na typ připojení.
USB HID a emulace klávesnice
USB definuje třídu Human Interface Device (HID) určenou pro klávesnice, myši a podobná vstupní zařízení. Když se čtečka na USB ohlásí jako klávesnice HID, operační systém načte svůj obecný vestavěný ovladač klávesnice — ovladač specifický pro čtečku není potřeba. Firmware čtečky převede každý dekódovaný znak na kód klávesy HID, který by poslala fyzická klávesnice, a zprávy se doručují stejným mechanismem přenosu přerušení jako u každé klávesnice USB.
Jak aplikace vidí vstup ze čtečky
Rychlá dávka stisků místo lidského psaní: čtečka odešle celý obsah jako rychlou posloupnost dvojic keydown/keyup a obvykle skončí do jedné sekundy bez ohledu na délku kódu.
Žádné události myši: čtečky v režimu klávesnice HID nikdy negenerují události ukazatele, kliknutí ani fokusu. Pokud pole v okamžiku skenu fokus nemá, vstup se ztratí nebo skončí u prvku, který fokus má.
Žádné události vložení: data přicházejí jako jednotlivé stisky, ne jako operace schránky, takže obsluhy události paste vstup ze čtečky neuvidí a vstupní masky, které poslouchají jen paste, ho tiše minou.
Problémy s rozložením klávesnice
Proč se objevují špatné znaky: čtečka mapuje dekódované znaky na kódy kláves HID podle vlastního nastaveného rozložení klávesnice. Pokud toto rozložení neodpovídá rozložení operačního systému, znaky se mohou prohodit — klasickým příznakem je, že číslice nebo interpunkce se na systémech QWERTY a AZERTY naskenují jako jiný znak.
Neshoda národního prostředí: jde o problém nastavení na straně čtečky, ne o chybu softwaru. Většina čteček umí přepnout národní prostředí pomocí konfiguračních čárových kódů v návodu a oprava znamená přeprogramovat čtečku tak, aby odpovídala národnímu prostředí operačního systému, nikoli měnit kód aplikace.
Předpony a přípony
Čtečky běžně podporují nastavitelné posloupnosti předpony a přípony kolem obsahu. Nejběžnější hodnoty přípony jsou ENTER (CR, 0x0D), TAB (0x09) a občas celý pár CR+LF. Předpony jsou méně časté, ale někdy se používají k nasměrování skenů do konkrétních polí ve starších terminálových aplikacích.
Omezení testování v prohlížeči
Prohlížeč nevidí surové pakety USB HID, nedokáže vypsat připojená zařízení HID konkrétně jako čtečku (mimo rozhraní WebHID, přes které většina čteček data nezpřístupňuje) a nedokáže odlišit čtečku v režimu klávesnice HID od skutečné klávesnice. JavaScriptu jsou dostupné jen události klávesnice viditelné v prohlížeči (keydown, keyup, keypress) a právě ty zkoumají nástroje na tomto webu.
Související
Pomocí testeru událostí klávesnice prohlédněte surové události klávesnice, nebo si přečtěte příručku Přípony ENTER a TAB s podrobnostmi nastavení přípony.