Ugrás a tartalomra

Barcode Scanner Emulator

Hogyan működnek a vonalkódolvasók

A vonalkód beolvasása azonnalinak tűnik, de a fizikai vonalkód és az alkalmazásba érkező karakter között négy külön szakasz van. Az egyes szakaszok megértése sokkal könnyebbé teszi az olvasóval kapcsolatos hibák diagnosztizálását.

A vonalkódbeolvasás négy szakasza

1. Megvilágítás és képrögzítés

A lézeres olvasók sugarat söpörnek végig a vonalkódon, és mérik a visszavert fény erősségét. A képalkotó olvasók (a legtöbb modern kézi és telefonkamerás olvasó) egy kis CMOS-érzékelővel 2D képet készítenek a vonalkódról, hasonlóan egy kis felbontású kamerához.

2. Dekódolás

A beépített firmware elemzi a vonalak szélességét (QR- és Data Matrix-kódoknál a 2D képet), és az adott szimbológia algoritmusával visszaalakítja az eredeti digitális tartalommá — Code 128, Code 39, EAN-13, QR és így tovább. Mindez az olvasón belül történik, mielőtt bármilyen adat elérné a számítógépet.

3. Kommunikáció

A dekódolt tartalom a gazdaszámítógépre kerül. Az átvitel általában USB, és a fogyasztói valamint ipari olvasók túlnyomó többsége USB HID-billentyűzetként jelenik meg az operációs rendszer számára, nem pedig egyedi USB-osztályként. Egyes olvasók támogatnak más módokat, például USB-soros (COM-port emuláció) vagy Bluetooth HID módot, de a billentyűzetemuláció szinte minden ma kapható olvasó alapbeállítása.

4. Alkalmazásbemenet

Mivel az olvasó billentyűzetként működik, az operációs rendszer a tartalmat billentyűesemények sorozataként adja át annak az alkalmazásnak, amelynek éppen billentyűzetfókusza van. Az alkalmazás soha nem beszél közvetlenül az olvasóval — csak billentyűleütéseket kap, pontosan úgy, mintha valaki nagyon gyorsan gépelte volna be őket.

Miért viselkedik a legtöbb olvasó billentyűzetként

A HID billentyűzetmód szinte minden kereskedelmi vonalkódolvasó alapértelmezett beállítása, mert nem igényel illesztőprogram-telepítést. Minden operációs rendszer, amely támogatja az USB-billentyűzetet, a csatlakoztatás pillanatától támogatja az olvasót.

Az USB-billentyűzet emulációja azt jelenti, hogy az olvasó firmware-je minden dekódolt karaktert ahhoz az USB HID billentyűkódhoz rendeli, amelyet a billentyűzet az adott karakterhez küldene, majd szabványos HID-billentyűzetjelentéseket továbbít az USB megszakítás-végponton.

Miért fontos ez a tesztelésnél: mivel az alkalmazásrétegen az olvasó megkülönböztethetetlen a billentyűzettől, az olvasó által vezérelt viselkedés nagy részét gyors gépeléssel is tesztelheti egy fókuszban lévő mezőben, vagy egy olyan böngészőeszközzel, amely a billentyűeseményeket vizsgálja (lásd az alábbi eszközöket).

ENTER és TAB utótagok

A legtöbb olvasó úgy van beállítva, hogy a dekódolt tartalom után utótag-billentyűleütést fűzzön, leggyakrabban ENTER-t (kocsivissza, 0x0D), néha TAB-ot (0x09) vagy egyedi sorozatot. Így a fogadó alkalmazás időkorlát nélkül tudja, hol ér véget a beolvasott érték — az utótag küldési jelként működik, hasonlóan az Enter lenyomásához egy szövegmező kitöltése után.

Az olvasó időzítése

Az olvasó a teljes vonalkódtartalmat jóval egy másodperc alatt továbbítja, gyakran csak néhány milliszekundumos szünetekkel a karakterek között. Aki ugyanazt a karakterláncot gépeli, általában 100–300 ms-ot vagy többet hagy a leütések között. Ez az időzítési különbség az alapja a „olvasófelismerés” logikájának sok POS- és készletalkalmazásban, amelyek szokatlanul gyors beviteli sorozatokat figyelnek, amelyeket azonnal utótagbillentyű követ.

Az alkalmazás számára ez azt jelenti: ha meg akarja különböztetni az olvasóbemenetet a kézi gépeléstől, a leütések közötti időt mérje, ne keressen külön jelzőt, mert a böngésző szabványos billentyűeseményei nem hordoznak információt a bemenet forrásáról.

Próbálja ki

A vonalkódbevitel-tesztelővel olvasson be egy valódi vonalkódot, és valós időben láthatja a rögzített értéket, az időzítést és az utótag felismerését. A billentyűzet-ékelés mélyebb magyarázatáért folytassa a HID billentyűzet-ékelés magyarázata útmutatóval.