Preskoči na sadržaj

Barcode Scanner Emulator

Kako rade skeneri barkoda

Skeniranje barkoda djeluje trenutačno, ali između fizičkog barkoda i znaka koji stigne u aplikaciju postoje četiri odvojene faze. Razumijevanje svake faze znatno olakšava dijagnostiku grešaka povezanih sa skenerom.

Četiri faze skeniranja barkoda

1. Osvjetljenje i snimanje slike

Laserski skeneri prelaze snopom preko barkoda i mjere jakost reflektiranog svjetla. Skeneri na bazi imagera (većina suvremenih ručnih skenera i skenera kamerom telefona) snimaju 2D sliku barkoda malim CMOS senzorom, slično kameri niske razlučivosti.

2. Dekodiranje

Ugrađeni firmware analizira širine crta (ili 2D sliku, za QR i Data Matrix kodove) i dekodira ih u izvorni digitalni sadržaj, algoritmom određene simbologije — Code 128, Code 39, EAN-13, QR i tako dalje. Sve se to događa unutar skenera, prije nego što bilo koji podatak stigne do računala.

3. Komunikacija

Dekodirani sadržaj prenosi se na glavno računalo. Prijenos je obično USB, a velika većina potrošačkih i industrijskih skenera predstavlja se operacijskom sustavu kao USB HID tipkovnica, a ne kao prilagođena USB klasa. Neki skeneri podržavaju druge načine, poput USB serijskog (emulacija COM priključka) ili Bluetooth HID, ali način emulacije tipkovnice zadana je postavka gotovo svakog skenera koji se danas prodaje.

4. Unos u aplikaciju

Budući da skener djeluje kao tipkovnica, operacijski sustav isporučuje sadržaj kao niz događaja tipkovnice aplikaciji koja trenutačno ima fokus tipkovnice. Aplikacija nikad ne razgovara izravno sa skenerom — samo prima pritiske tipki, točno kao da ih je netko vrlo brzo upisao.

Zašto se većina skenera ponaša kao tipkovnica

HID način tipkovnice zadana je konfiguracija gotovo svih komercijalnih skenera barkoda jer ne zahtijeva instalaciju upravljačkog programa. Svaki operacijski sustav koji podržava USB tipkovnicu podržava skener čim se priključi.

Emulacija USB tipkovnice znači da firmware skenera svaki dekodirani znak preslikava u USB HID kod tipke koji bi tipkovnica poslala za taj znak, a zatim šalje standardna HID izvješća tipkovnice preko USB prekidne krajnje točke.

Zašto je to važno za testiranje: budući da je skener na razini aplikacije neodvojiv od tipkovnice, velik dio ponašanja vođenog skenerom možete testirati brzim tipkanjem u polje koje ima fokus ili alatom u pregledniku koji pregledava događaje tipkovnice (vidi alate povezane u nastavku).

Sufiksi ENTER i TAB

Većina skenera konfigurirana je tako da nakon dekodiranog sadržaja doda pritisak sufiksa, najčešće ENTER (povratak retka, 0x0D), ponekad TAB (0x09) ili prilagođeni niz. To postoji kako bi primajuća aplikacija znala gdje skenirana vrijednost završava bez vremenskog ograničenja — sufiks djeluje kao signal slanja, slično pritisku Enter nakon upisa u tekstualno polje.

Vremenski raspored skenera

Skener prenosi cijeli sadržaj barkoda znatno ispod jedne sekunde, često s razmacima od nekoliko milisekundi između znakova. Osoba koja upisuje isti niz obično ostavlja 100–300 ms ili više između pritisaka. Ta razlika u vremenu temelj je logike „prepoznavanja skenera” u mnogim POS i skladišnim aplikacijama, koje traže neuobičajeno brze nalete unosa odmah praćene tipkom sufiksa.

Za vašu aplikaciju to znači: ako želite razlikovati unos skenera od ručnog tipkanja, mjerite vrijeme između pritisaka umjesto da tražite posebnu oznaku, jer standardni događaji tipkovnice u pregledniku ne nose podatak o izvoru unosa.

Isprobajte sami

Upotrijebite tester unosa barkoda da skenirate stvarni barkod i u stvarnom vremenu vidite uhvaćenu vrijednost, vremenski raspored i prepoznavanje sufiksa. Za dublji uvid u ponašanje keyboard wedgea nastavite na HID keyboard wedge objašnjen.