Přejít k obsahu

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.