Barcode Scanner Emulator
Kaip veikia brūkšninių kodų skaitytuvai
Brūkšninio kodo nuskaitymas atrodo akimirksniu, bet tarp fizinio kodo ir simbolio, kuris patenka į programą, yra keturi atskiri etapai. Kiekvieną etapą supratus, su skaitytuvu susijusias klaidas diagnozuoti daug lengviau.
Keturi brūkšninio kodo nuskaitymo etapai
1. Apšvietimas ir vaizdo fiksavimas
Lazeriniai skaitytuvai brūkšninį kodą perbraukia spinduliu ir matuoja atsispindėjusios šviesos intensyvumą. Vaizdo skaitytuvai (dauguma šiuolaikinių rankinių ir telefono kameros skaitytuvų) mažu CMOS jutikliu užfiksuoja 2D brūkšninio kodo vaizdą, panašiai kaip mažos raiškos kamera.
2. Dekodavimas
Integruota programinė aparatinė įranga analizuoja juostų pločius (arba 2D vaizdą QR ir Data Matrix kodams) ir dekoduoja juos į pradinę skaitmeninę apkrovą pagal konkrečios simbologijos algoritmą: Code 128, Code 39, EAN-13, QR ir panašiai. Visa tai vyksta pačiame skaitytuve, dar prieš duomenims pasiekiant kompiuterį.
3. Ryšys
Dekoduota apkrova perduodama pagrindiniam kompiuteriui. Perdavimas paprastai vyksta per USB, ir didžioji dauguma buitinių bei pramoninių skaitytuvų operacinei sistemai prisistato kaip USB HID klaviatūros įrenginys, o ne kaip pasirinktinė USB klasė. Kai kurie skaitytuvai palaiko kitus režimus, pavyzdžiui USB nuoseklųjį (COM prievado emuliaciją) arba Bluetooth HID, bet klaviatūros emuliacija yra numatytasis režimas beveik visuose šiandien parduodamuose skaitytuvuose.
4. Programos įvestis
Kadangi skaitytuvas veikia kaip klaviatūra, operacinė sistema apkrovą pateikia kaip klavišų įvykių seką tai programai, kuri šiuo metu turi klaviatūros fokusą. Programa niekada nekalba su skaitytuvu tiesiogiai: ji tik gauna klavišų paspaudimus, lyg kas nors būtų juos surinkęs labai greitai.
Kodėl dauguma skaitytuvų elgiasi kaip klaviatūros
HID klaviatūros režimas yra numatytoji beveik visų komercinių brūkšninių kodų skaitytuvų konfigūracija, nes nereikia diegti tvarkyklės. Bet kuri operacinė sistema, palaikanti USB klaviatūrą, skaitytuvą palaiko iš karto.
USB klaviatūros emuliacija reiškia, kad skaitytuvo programinė aparatinė įranga kiekvieną dekoduotą simbolį susieja su USB HID klavišo kodu, kurį klaviatūra siųstų tam simboliui, ir perduoda standartines HID klaviatūros ataskaitas per USB pertraukčių galinį tašką.
Kodėl tai svarbu testuojant: kadangi programos sluoksnyje skaitytuvas neatskiriamas nuo klaviatūros, didelę skaitytuvo nulemtos elgsenos dalį galite patikrinti tiesiog greitai rašydami į sufokusuotą lauką arba naudodami naršyklės įrankį, kuris tikrina klaviatūros įvykius (žr. toliau nurodytus įrankius).
ENTER ir TAB priesagos
Dauguma skaitytuvų sukonfigūruoti po dekoduotos apkrovos pridėti priesagos klavišo paspaudimą, dažniausiai ENTER (grįžimas į eilutės pradžią, 0x0D), kartais TAB (0x09) arba pasirinktinę seką. Taip priimanti programa gali nustatyti, kur baigiasi nuskaityta reikšmė, nenaudodama skirtojo laiko: priesaga veikia kaip pateikimo signalas, panašiai kaip Enter paspaudimas įvedus tekstą į lauką.
Skaitytuvo laikas
Skaitytuvas visą brūkšninio kodo apkrovą perduoda gerokai greičiau nei per sekundę, dažnai su kelių milisekundžių tarpais tarp simbolių. Žmogus, renkantis tą pačią eilutę, paprastai tarp klavišų palieka 100–300 ms ar daugiau. Šis laiko skirtumas yra daugelio POS ir atsargų programų „skaitytuvo aptikimo“ logikos pagrindas: jos stebi neįprastai greitus įvesties pliūpsnius, po kurių iškart eina priesagos klavišas.
Programai tai reiškia: jei norite atskirti skaitytuvo įvestį nuo rankinio rinkimo, matuokite laiką tarp klavišų paspaudimų, o ne ieškokite specialios žymos, nes standartiniai naršyklės klaviatūros įvykiai neturi informacijos apie įvesties šaltinį.
Išbandykite patys
Naudokite brūkšninio kodo įvesties testerį, kad nuskaitytumėte tikrą brūkšninį kodą ir realiu laiku pamatytumėte užfiksuotą reikšmę, laiką ir priesagos aptikimą. Norėdami giliau panagrinėti būtent klaviatūros pleišto elgseną, tęskite HID klaviatūros pleišto paaiškinimą.