Hopp til innhold

Barcode Scanner Emulator

Slik fungerer strekkodeskannere

En strekkodeskanning ser umiddelbar ut, men mellom den fysiske strekkoden og tegnet som havner i programmet, er det fire ulike trinn. Å forstå hvert trinn gjør skannerfeil mye enklere å diagnostisere.

De fire trinnene i en strekkodeskanning

1. Belysning og bildefangst

Laserskannere sveiper en stråle over strekkoden og måler intensiteten i det reflekterte lyset. Bildeskannere (de fleste moderne håndskannere og telefonkameraer) fanger et 2D-bilde av strekkoden med en liten CMOS-sensor, omtrent som et kamera med lav oppløsning.

2. Dekoding

Innebygd fastvare analyserer strekbreddene (eller 2D-bildet for QR- og Data Matrix-koder) og dekoder dem til den opprinnelige digitale lasten, med algoritmen for den aktuelle symbologien: Code 128, Code 39, EAN-13, QR og så videre. Alt dette skjer inne i skanneren, før noen data når datamaskinen.

3. Kommunikasjon

Den dekodede lasten sendes til vertsdatamaskinen. Transporten er vanligvis USB, og de aller fleste forbruker- og industriskannere presenterer seg for operativsystemet som en USB HID-tastaturenhet, ikke som en egendefinert USB-klasse. Noen skannere støtter andre modi, som USB-serie (COM-portemulering) eller Bluetooth HID, men tastaturemulering er standard på nesten alle skannere som selges i dag.

4. Programinndata

Fordi skanneren opptrer som et tastatur, leverer operativsystemet lasten som en rekke tastetrykkhendelser til programmet som har tastaturfokus. Programmet snakker aldri direkte med skanneren. Det mottar bare tastetrykk, akkurat som om noen hadde skrevet dem svært raskt.

Hvorfor de fleste skannere oppfører seg som tastaturer

HID-tastaturmodus er standardoppsettet på nesten alle kommersielle strekkodeskannere fordi det ikke krever driverinstallasjon. Ethvert operativsystem som støtter et USB-tastatur, støtter skanneren med en gang.

USB-tastaturemulering betyr at skannerens fastvare kobler hvert dekodet tegn til USB HID-tastekoden et tastatur ville sendt for det tegnet, og deretter sender standard HID-tastaturrapporter over USB-avbruddsendepunktet.

Hvorfor dette betyr noe for testing: siden skanneren ikke kan skilles fra et tastatur i programlaget, kan du teste en stor del av skannerstyrt oppførsel ved å skrive raskt i et felt med fokus, eller ved å bruke et nettleserverktøy som undersøker tastaturhendelser (se verktøyene nedenfor).

ENTER- og TAB-suffikser

De fleste skannere er satt opp til å legge til et suffikstastetrykk etter den dekodede lasten, oftest ENTER (vognretur, 0x0D), noen ganger TAB (0x09) eller en egendefinert sekvens. Det finnes slik at mottakerprogrammet kan se hvor den skannede verdien slutter uten tidsavbrudd. Suffikset fungerer som et sendesignal, omtrent som å trykke Enter etter å ha skrevet i et tekstfelt.

Skannertiming

En skanner sender en hel strekkodelast godt under ett sekund, ofte med noen millisekunders mellomrom mellom tegnene. Et menneske som skriver den samme strengen, har vanligvis 100–300 ms eller mer mellom tastetrykk. Denne tidsforskjellen er grunnlaget for «skannerdeteksjon» i mange POS- og lagerprogrammer, som ser etter uvanlig raske inndatabyger umiddelbart fulgt av en suffikstast.

For programmet betyr det: hvis du vil skille skannerinndata fra manuell skriving, mål tiden mellom tastetrykk i stedet for å lete etter et spesielt flagg, fordi vanlige tastaturhendelser i nettleseren ikke sier noe om inndatakilden.

Prøv selv

Bruk strekkodeinndatatesten til å skanne en ekte strekkode og se verdien, timingen og suffiksdeteksjonen i sanntid. For en grundigere gjennomgang av tastaturkilen, gå videre til Forklaring av HID-tastaturkile.