Přejít k obsahu

Barcode Scanner Emulator

Jak fungují čtečky čárových kódů

Sken čárového kódu vypadá okamžitě, ale mezi fyzickým kódem a znakem, který se objeví v aplikaci, jsou čtyři odlišné fáze. Když každou fázi pochopíte, diagnostika chyb souvisejících se čtečkou je mnohem snazší.

Čtyři fáze skenu čárového kódu

1. Osvětlení a zachycení obrazu

Laserové čtečky přejedou kód paprskem a měří intenzitu odraženého světla. Obrazové čtečky (většina moderních ručních čteček a fotoaparátů v telefonu) zachytí 2D obraz kódu malým snímačem CMOS, podobným kameře s nízkým rozlišením.

2. Dekódování

Vestavěný firmware analyzuje šířky čar (nebo 2D obraz u kódů QR a Data Matrix) a dekóduje je na původní digitální obsah pomocí algoritmu dané symbologie — Code 128, Code 39, EAN-13, QR a dalších. To vše proběhne uvnitř čtečky, ještě než se jakákoli data dostanou do počítače.

3. Komunikace

Dekódovaný obsah se přenese do hostitelského počítače. Přenos je obvykle USB a naprostá většina spotřebitelských i průmyslových čteček se operačnímu systému hlásí jako klávesnice USB HID, nikoli jako vlastní třída USB. Některé čtečky podporují i jiné režimy, například sériové USB (emulace portu COM) nebo Bluetooth HID, ale emulace klávesnice je výchozí nastavení téměř u každé dnes prodávané čtečky.

4. Vstup do aplikace

Protože čtečka vystupuje jako klávesnice, operační systém doručí obsah jako posloupnost událostí kláves té aplikaci, která má právě fokus klávesnice. Aplikace se čtečkou nikdy nemluví přímo — dostává jen stisky kláves, přesně jako kdyby je někdo velmi rychle napsal.

Proč se většina čteček chová jako klávesnice

Režim klávesnice HID je výchozí konfigurace téměř všech komerčních čteček čárových kódů, protože nevyžaduje instalaci ovladače. Každý operační systém, který podporuje klávesnici USB, podporuje čtečku hned po připojení.

Emulace klávesnice USB znamená, že firmware čtečky mapuje každý dekódovaný znak na kód klávesy HID USB, který by klávesnice pro tento znak poslala, a poté odesílá běžné zprávy klávesnice HID přes koncový bod přerušení USB.

Proč na tom při testování záleží: na vrstvě aplikace je čtečka od klávesnice nerozeznatelná, takže velkou část chování řízeného čtečkou ověříte rychlým psaním do pole s fokusem, nebo nástrojem v prohlížeči, který zkoumá události klávesnice (viz nástroje odkazované níže).

Přípony ENTER a TAB

Většina čteček je nastavena tak, aby za dekódovaný obsah připojila stisk přípony, nejčastěji ENTER (návrat vozíku, 0x0D), někdy však TAB (0x09) nebo vlastní posloupnost. Přijímající aplikace tak pozná, kde naskenovaná hodnota končí, aniž by potřebovala časový limit — přípona slouží jako signál odeslání, podobně jako stisk Enter po napsání textu do pole.

Časování čtečky

Čtečka přenese celý obsah čárového kódu za výrazně méně než sekundu, často s mezerami jen několika milisekund mezi znaky. Člověk, který stejný řetězec píše, má mezi stisky obvykle mezery 100–300 ms i více. Tento rozdíl je základem „rozpoznání čtečky“ v mnoha aplikacích POS a skladu, které sledují nezvykle rychlé dávky vstupu bezprostředně následované klávesou přípony.

Pro vaši aplikaci to znamená: chcete-li odlišit vstup ze čtečky od ručního psaní, měřte čas mezi stisky kláves a nehledejte zvláštní příznak. Běžné události klávesnice v prohlížeči nenesou informaci o zdroji vstupu.

Vyzkoušejte to sami

Pomocí testeru vstupu čárového kódu naskenujte skutečný kód a v reálném čase uvidíte zachycenou hodnotu, časování a rozpoznání přípony. Podrobněji o chování klávesnicového klínu pokračujte na Vysvětlení klávesnicového klínu HID.