Barcode Scanner Emulator
Miten viivakoodinlukijat toimivat
Viivakoodin luku näyttää välittömältä, mutta fyysisen viivakoodin ja sovellukseen päätyvän merkin välillä on neljä erillistä vaihetta. Kunkin vaiheen ymmärtäminen helpottaa lukijaan liittyvien virheiden diagnosointia huomattavasti.
Viivakoodin luvun neljä vaihetta
1. Valaistus ja kuvan kaappaus
Laserlukijat pyyhkäisevät säteen viivakoodin yli ja mittaavat heijastuneen valon voimakkuuden. Kuvapohjaiset lukijat (useimmat nykyaikaiset käsilukijat ja puhelinkameralukijat) kaappaavat viivakoodista 2D-kuvan pienellä CMOS-kennolla, samaan tapaan kuin matalaresoluutioinen kamera.
2. Purku
Sisäinen laiteohjelmisto analysoi palkkien leveydet (tai 2D-kuvan QR- ja Data Matrix -koodeissa) ja purkaa ne alkuperäiseksi digitaaliseksi sisällöksi kyseisen symboliikan algoritmilla — Code 128, Code 39, EAN-13, QR ja niin edelleen. Kaikki tämä tapahtuu lukijan sisällä, ennen kuin data päätyy tietokoneellesi.
3. Tiedonsiirto
Purettu sisältö lähetetään isäntätietokoneelle. Siirtotie on yleensä USB, ja valtaosa kuluttaja- ja teollisuuslukijoista esiintyy käyttöjärjestelmälle USB HID -näppäimistönä eikä mukautettuna USB-luokkana. Jotkin lukijat tukevat vaihtoehtoisia tiloja, kuten USB-sarjaa (COM-portin emulointi) tai Bluetooth HID -tilaa, mutta näppäimistöemulointi on oletus lähes jokaisessa nykyisin myytävässä lukijassa.
4. Sovellussyöte
Koska lukija toimii näppäimistönä, käyttöjärjestelmä toimittaa sisällön näppäintapahtumien jonona sille sovellukselle, jolla on parhaillaan näppäimistökohdistus. Sovelluksesi ei keskustele lukijan kanssa suoraan — se vastaanottaa vain näppäilyjä, aivan kuin joku olisi kirjoittanut ne hyvin nopeasti.
Miksi useimmat lukijat käyttäytyvät näppäimistön tavoin
HID-näppäimistötila on oletusmääritys lähes kaikissa kaupallisissa viivakoodinlukijoissa, koska se ei vaadi ohjaimen asennusta. Mikä tahansa käyttöjärjestelmä, joka tukee USB-näppäimistöä, tukee lukijaa heti kytkettäessä.
USB-näppäimistöemulointi tarkoittaa, että lukijan laiteohjelmisto yhdistää kunkin puretun merkin USB HID -näppäinkoodiin, jonka näppäimistö lähettäisi kyseiselle merkille, ja lähettää sitten tavalliset HID-näppäimistöraportit USB-keskeytyspäätepisteen kautta.
Miksi tällä on merkitystä testauksessa: koska lukija on sovelluskerroksessa erottamaton näppäimistöstä, voit testata suuren osan lukijapohjaisesta toiminnasta kirjoittamalla nopeasti kohdistettuun kenttään tai käyttämällä selaintyökalua, joka tarkastelee näppäintapahtumia (katso alla linkitetyt työkalut).
ENTER- ja TAB-päätteet
Useimmat lukijat on määritetty lisäämään puretun sisällön perään päätteenäppäily, useimmiten ENTER (rivinvaihto, 0x0D) mutta joskus TAB (0x09) tai mukautettu jono. Näin vastaanottava sovellus tietää, missä luettu arvo päättyy ilman aikakatkaisua — pääte toimii lähetyssignaalina, samaan tapaan kuin Enterin painaminen tekstikenttään kirjoittamisen jälkeen.
Lukijan ajoitus
Lukija lähettää koko viivakoodin sisällön reilusti alle sekunnissa, usein vain muutaman millisekunnin väleillä merkkien välillä. Ihminen, joka kirjoittaa saman merkkijonon, jättää näppäilyjen väliin yleensä 100–300 ms tai enemmän. Tämä ajoitusero on monien POS- ja varastosovellusten lukijan tunnistuslogiikan perusta: ne tarkkailevat epätavallisen nopeita syötepurkauksia, joita seuraa heti päätnäppäin.
Sovelluksellesi tämä tarkoittaa: jos haluat erottaa lukijasyötteen käsin kirjoittamisesta, mittaa näppäilyjen välinen aika äläkä etsi erityistä lippua, koska tavalliset selaimen näppäintapahtumat eivät sisällä tietoa syötteen lähteestä.
Kokeile itse
Käytä viivakoodisyötteen testaajaa, skannaa oikea viivakood ja näe kaapattu arvo, ajoitus ja päätteen tunnistus reaaliajassa. Syvempää katsausta näppäimistökiilan toimintaan saat oppaasta HID-näppäimistökiila selitettynä.