Barcode Scanner Emulator
Kako delujejo čitalniki črtnih kod
Branje črtne kode je videti takojšnje, vendar med fizično črtno kodo in znakom, ki pristane v aplikaciji, potekajo štiri ločene faze. Razumevanje vsake faze močno olajša diagnozo napak, povezanih s čitalnikom.
Štiri faze branja črtne kode
1. Osvetlitev in zajem slike
Laserski čitalniki ponesejo žarek čez črtno kodo in merijo jakost odbite svetlobe. Čitalniki s slikovnim tipalom (večina sodobnih ročnih čitalnikov in čitalnikov s kamero telefona) zajamejo 2D-sliko črtne kode z majhnim tipalom CMOS, podobno kot kamera z nizko ločljivostjo.
2. Dekodiranje
Vgrajena strojna programska oprema analizira širine črt (ali 2D-sliko pri kodah QR in Data Matrix) ter jih dekodira v izvirne digitalne podatke z algoritmom za določeno simbologijo — Code 128, Code 39, EAN-13, QR in tako naprej. Vse to se zgodi v samem čitalniku, preden kakršni koli podatki dosežejo računalnik.
3. Komunikacija
Dekodirani podatki se prenesejo v gostiteljski računalnik. Prenos je običajno prek USB, velika večina potrošniških in industrijskih čitalnikov pa se operacijskemu sistemu predstavi kot tipkovnica USB HID in ne kot lasten razred USB. Nekateri čitalniki podpirajo nadomestne načine, na primer USB serial (emulacija vrat COM) ali Bluetooth HID, vendar je način emulacije tipkovnice privzet pri skoraj vsakem čitalniku, ki se danes prodaja.
4. Vnos v aplikacijo
Ker čitalnik deluje kot tipkovnica, operacijski sistem dostavi podatke kot zaporedje dogodkov tipk aplikaciji, ki ima trenutno fokus tipkovnice. Aplikacija s čitalnikom nikoli ne govori neposredno — prejme le pritiske tipk, natanko tako, kot bi jih nekdo zelo hitro vtipkal.
Zakaj se večina čitalnikov obnaša kot tipkovnica
Način tipkovnice HID je privzeta nastavitev skoraj vseh komercialnih čitalnikov črtnih kod, ker ne zahteva namestitve gonilnika. Vsak operacijski sistem, ki podpira tipkovnico USB, čitalnik podpira takoj po priključitvi.
Emulacija tipkovnice USB pomeni, da strojna programska oprema čitalnika vsak dekodirani znak preslika v kodo tipke USB HID, ki bi jo tipkovnica poslala za ta znak, nato pa prenese standardna poročila tipkovnice HID prek prekinitvene končne točke USB.
Zakaj je to pomembno pri preizkušanju: ker je čitalnik na ravni aplikacije nerazločljiv od tipkovnice, lahko velik del vedenja, ki ga poganja čitalnik, preizkusite s hitrim tipkanjem v polje s fokusom ali z orodjem v brskalniku, ki pregleduje dogodke tipkovnice (glejte spodaj povezana orodja).
Pripone ENTER in TAB
Večina čitalnikov je nastavljena tako, da za dekodiranimi podatki doda pripono v obliki pritiska tipke, najpogosteje ENTER (vrnitev vozička, 0x0D), včasih pa TAB (0x09) ali poljubno zaporedje. Tako lahko prejemna aplikacija ve, kje se prebrana vrednost konča, brez časovne omejitve — pripona deluje kot signal za potrditev, podobno kot pritisk Enter po vnosu v besedilno polje.
Časovni potek čitalnika
Čitalnik prenese celotno vsebino črtne kode precej pod eno sekundo, pogosto z vrzelmi le nekaj milisekund med znaki. Človek, ki vtipka isti niz, ima med pritiski običajno vrzeli 100–300 ms ali več. Ta razlika v času je osnova logike »zaznavanja čitalnika« v številnih aplikacijah POS in zalog, ki iščejo nenavadno hitre nize vnosa, ki jim takoj sledi pripona.
Za vašo aplikacijo to pomeni: če želite ločiti vnos čitalnika od ročnega tipkanja, merite čas med pritiski tipk. Standardni dogodki tipkovnice v brskalniku ne nosijo nobene informacije o viru vnosa, zato posebne zastavice ni mogoče preveriti.
Preizkusite sami
Z preizkuševalnikom vnosa črtnih kod preberite pravo črtno kodo in v realnem času si oglejte zajeto vrednost, časovni potek in zaznavo pripone. Za podrobnejši vpogled v delovanje keyboard wedge nadaljujte z vodnikom Razlaga HID keyboard wedge.