Liigu sisu juurde

Barcode Scanner Emulator

Kuidas vöötkoodiskannerid töötavad

Vöötkoodi skannimine näib kohene, kuid füüsilise vöötkoodi ja teie rakendusse jõudva märgi vahel on neli eraldiseisvat etappi. Iga etapi mõistmine muudab skanneriga seotud vigade diagnoosimise palju lihtsamaks.

Vöötkoodi skannimise neli etappi

1. Valgustus ja kujutise hõive

Laserskannerid liigutavad kiirt üle vöötkoodi ja mõõdavad peegeldunud valguse tugevust. Kujutispõhised skannerid (enamik tänapäevaseid käsiskannereid ja telefonikaamera skannereid) jäädvustavad vöötkoodist 2D-kujutise väikese CMOS-anduriga, sarnaselt madala eraldusvõimega kaameraga.

2. Dekodeerimine

Sisseehitatud püsivara analüüsib ribade laiuseid (või 2D-kujutist QR- ja Data Matrix-koodide puhul) ning dekodeerib need algseks digitaalseks sisuks, kasutades konkreetse sümboloogia algoritmi — Code 128, Code 39, EAN-13, QR ja nii edasi. Kõik see toimub skanneri sees, enne kui andmed teie arvutisse jõuavad.

3. Side

Dekodeeritud sisu edastatakse hostarvutile. Transpordiks on tavaliselt USB ja valdav enamik tarbija- ning tööstusskannereid esitab end operatsioonisüsteemile USB HID-klaviatuurina, mitte kohandatud USB-klassina. Mõned skannerid toetavad alternatiivseid režiime, näiteks USB-jada (COM-pordi emulatsioon) või Bluetooth HID, kuid klaviatuuri emuleerimise režiim on vaikeseade peaaegu igal tänapäeval müüdaval skanneril.

4. Rakenduse sisend

Kuna skanner toimib klaviatuurina, edastab operatsioonisüsteem sisu klahvisündmuste jadana sellele rakendusele, millel on parajasti klaviatuurifookus. Teie rakendus ei suhtle skanneriga otse — see võtab vastu lihtsalt klahvivajutusi, täpselt nagu keegi oleks need väga kiiresti tippinud.

Miks enamik skannereid käitub nagu klaviatuur

HID-klaviatuurirežiim on peaaegu kõigi kaubanduslike vöötkoodiskannerite vaikekonfiguratsioon, sest see ei nõua draiveri paigaldamist. Iga operatsioonisüsteem, mis toetab USB-klaviatuuri, toetab skannerit kohe pärast ühendamist.

USB-klaviatuuri emulatsioon tähendab, et skanneri püsivara vastendab iga dekodeeritud märgi USB HID-klahvikoodile, mille klaviatuur selle märgi jaoks saadaks, ja edastab seejärel standardsed HID-klaviatuuriraportid USB katkestuse lõpp-punkti kaudu.

Miks see testimisel oluline on: kuna skanner on rakendusekihil klaviatuurist eristamatu, saate suure osa skanneripõhisest käitumisest testida, tippides kiiresti fookuses olevasse välja, või kasutades brauseritööriista, mis uurib klaviatuurisündmusi (vt allpool lingitud tööriistu).

ENTER- ja TAB-järelliited

Enamik skannereid on seadistatud lisama dekodeeritud sisu järele järelliite klahvivajutuse, kõige sagedamini ENTER (reavahetus, 0x0D), kuid mõnikord TAB (0x09) või kohandatud jada. See on olemas selleks, et vastuvõttev rakendus saaks aru, kus skannitud väärtus lõpeb, ilma ajalõppu vajamata — järelliide toimib saatmissignaalina, sarnaselt Enteri vajutamisega pärast tekstivälja täitmist.

Skanneri ajastus

Skanner edastab kogu vöötkoodi sisu tunduvalt alla sekundi, sageli vaid mõnemillisekundiliste vahedega märkide vahel. Inimene, kes tipib sama stringi, jätab klahvivajutuste vahele tavaliselt 100–300 ms või rohkem. See ajastuse erinevus on paljude POS- ja laorakenduste skannerituvastuse loogika alus: need jälgivad ebatavaliselt kiireid sisendipurskeid, millele järgneb kohe järelliite klahv.

Teie rakenduse jaoks tähendab see järgmist: kui soovite eristada skanneri sisendit käsitsi tippimisest, mõõtke klahvivajutuste vahelist aega, mitte otsige erilist lippu, sest standardsed brauseri klaviatuurisündmused ei kanna teavet sisendi allika kohta.

Proovige ise

Kasutage vöötkoodisisendi testerit, et skannida päris vöötkood ja näha hõivatud väärtust, ajastust ja järelliite tuvastamist reaalajas. Klaviatuurikiilu käitumise põhjalikumaks käsitluseks jätkake juhendiga HID-klaviatuurikiil lahti seletatuna.