Barcode Scanner Emulator
Ako fungujú skenery čiarových kódov
Skenovanie čiarového kódu vyzerá ako okamžité, no medzi fyzickým čiarovým kódom a znakom, ktorý sa objaví vo vašej aplikácii, prebiehajú štyri samostatné fázy. Pochopenie každej fázy výrazne uľahčuje diagnostiku chýb súvisiacich so skenerom.
Štyri fázy skenovania čiarového kódu
1. Osvetlenie a zachytenie obrazu
Laserové skenery prechádzajú lúčom cez čiarový kód a merajú intenzitu odrazeného svetla. Skenery so snímačom obrazu (väčšina moderných ručných skenerov a skenerov s kamerou telefónu) zachytia 2D obraz čiarového kódu malým snímačom CMOS, podobne ako kamera s nízkym rozlíšením.
2. Dekódovanie
Firmvér v zariadení analyzuje šírky čiar (alebo 2D obraz pri kódoch QR a Data Matrix) a dekóduje ich na pôvodné digitálne údaje algoritmom pre konkrétnu symboliku — Code 128, Code 39, EAN-13, QR a ďalšie. Toto všetko prebieha vnútri skenera, skôr než sa akékoľvek údaje dostanú do počítača.
3. Komunikácia
Dekódované údaje sa prenesú do hostiteľského počítača. Prenos je zvyčajne cez USB a prevažná väčšina spotrebiteľských aj priemyselných skenerov sa operačnému systému hlási ako klávesnica USB HID, nie ako vlastná trieda USB. Niektoré skenery podporujú alternatívne režimy, napríklad USB serial (emulácia portu COM) alebo Bluetooth HID, no režim emulácie klávesnice je predvolený takmer pri každom dnes predávanom skeneri.
4. Vstup do aplikácie
Keďže skener funguje ako klávesnica, operačný systém doručí údaje ako postupnosť udalostí klávesov do aplikácie, ktorá má práve fokus klávesnice. Aplikácia so skenerom nikdy nekomunikuje priamo — len prijíma stlačenia klávesov, presne ako keby ich niekto napísal veľmi rýchlo.
Prečo sa väčšina skenerov správa ako klávesnica
Režim klávesnice HID je predvolená konfigurácia takmer všetkých komerčných skenerov čiarových kódov, pretože nevyžaduje inštaláciu ovládača. Každý operačný systém, ktorý podporuje klávesnicu USB, podporuje skener hneď po pripojení.
Emulácia klávesnice USB znamená, že firmvér skenera mapuje každý dekódovaný znak na kód klávesu USB HID, ktorý by pre daný znak poslala klávesnica, a potom prenáša štandardné hlásenia klávesnice HID cez prerušovací endpoint USB.
Prečo je to dôležité pri testovaní: keďže skener je na vrstve aplikácie nerozoznateľný od klávesnice, veľkú časť správania riadeného skenerom môžete otestovať rýchlym písaním do poľa s fokusom alebo nástrojom v prehliadači, ktorý skúma udalosti klávesnice (pozrite nástroje uvedené nižšie).
Prípony ENTER a TAB
Väčšina skenerov je nastavená tak, aby za dekódované údaje pripojila príponu v podobe stlačenia klávesu, najčastejšie ENTER (návrat vozíka, 0x0D), niekedy TAB (0x09) alebo vlastnú postupnosť. Vďaka tomu vie prijímajúca aplikácia, kde naskenovaná hodnota končí, bez časového limitu — prípona slúži ako signál odoslania, podobne ako stlačenie Enter po napísaní textu do poľa.
Časovanie skenera
Skener prenesie celý obsah čiarového kódu výrazne pod jednu sekundu, často s medzerami len niekoľko milisekúnd medzi znakmi. Človek píšuci ten istý reťazec má medzi stlačeniami zvyčajne medzery 100–300 ms alebo viac. Tento rozdiel v časovaní je základom logiky „rozpoznania skenera“ v mnohých aplikáciách POS a skladových systémoch, ktoré sledujú nezvyčajne rýchle dávky vstupu nasledované hneď príponou.
Pre vašu aplikáciu to znamená: ak chcete odlíšiť vstup zo skenera od ručného písania, merajte čas medzi stlačeniami klávesov. Štandardné udalosti klávesnice v prehliadači nenesú žiadnu informáciu o zdroji vstupu, takže špeciálny príznak hľadať nemožno.
Vyskúšajte to
Pomocou testera vstupu čiarových kódov naskenujte skutočný čiarový kód a v reálnom čase uvidíte zachytenú hodnotu, časovanie a detekciu prípony. Podrobnejšie vysvetlenie správania keyboard wedge nájdete v príručke Vysvetlenie HID keyboard wedge.