Preskoči na sadržaj

Barcode Scanner Emulator

HID keyboard wedge objašnjen

Keyboard wedge zadani je način rada velike većine skenera barkoda. Ovaj vodič objašnjava što je to, kako radi na razini USB-a i što znači za testiranje vaše aplikacije.

Što je keyboard wedge?

Pojam potječe od starijih skenera na serijskom priključku koji su se doslovno „uklinili” između tipkovnice i priključka računala, presretali signal tipkovnice i u njega ubacivali skenirane znakove. Suvremeni skeneri više ne trebaju fizičko uklinjavanje — izraz sada označava svaki skener koji skenirane podatke prikazuje kao da dolaze s tipkovnice, bez obzira na vrstu veze.

USB HID i emulacija tipkovnice

USB definira klasu Human Interface Device (HID) posebno za tipkovnice, miševe i slične ulazne uređaje. Kad se skener na USB-u nabraja kao HID tipkovnica, operacijski sustav učitava svoj generički ugrađeni upravljački program tipkovnice — nije potreban upravljački program specifičan za skener. Firmware skenera svaki dekodirani znak pretvara u HID kod tipke koji bi poslala fizička tipkovnica, a izvješća se isporučuju istim mehanizmom prijenosa prekidom koji koristi svaka USB tipkovnica.

Kako vaša aplikacija vidi unos skenera

Brzi nalet pritisaka naspram ljudskog tipkanja: skener šalje cijeli sadržaj kao brzi niz parova keydown/keyup i obično završi za manje od sekunde, bez obzira na duljinu barkoda.

Nema događaja miša: skeneri u HID načinu tipkovnice nikad ne stvaraju događaje pokazivača, klika ili fokusa. Ako polje nema fokus u trenutku skeniranja, unos se gubi ili odlazi na element koji fokus ima.

Nema događaja lijepljenja: budući da podaci stižu kao pojedinačni pritisci, a ne kao radnja međuspremnika, obrađivači događaja paste ne vide unos skenera, a maske unosa koje slušaju samo paste tiho ga propuštaju.

Problemi s rasporedom tipkovnice

Zašto se pojavljuju pogrešni znakovi: skener dekodirane znakove preslikava u HID kodove tipki prema vlastitom konfiguriranom rasporedu tipkovnice. Ako taj raspored ne odgovara rasporedu operacijskog sustava, znakovi se mogu zamijeniti — klasičan simptom jest da se znamenke ili interpunkcija skeniraju kao pogrešan znak na sustavima QWERTY naspram AZERTY.

Nepodudaranje lokaliteta: to je problem konfiguracije na strani skenera, a ne softverska greška. Većina skenera podržava promjenu lokaliteta putem konfiguracijskih barkodova otisnutih u priručniku, a popravak znači ponovno programiranje skenera da odgovara lokalitetu operacijskog sustava, a ne mijenjanje koda aplikacije.

Prefiksi i sufiksi

Skeneri obično podržavaju podesive nizove prefiksa i sufiksa oko sadržaja. Najčešće vrijednosti sufiksa su ENTER (CR, 0x0D), TAB (0x09) i povremeno puni par CR+LF. Prefiksi su rjeđi, ali se ponekad koriste za usmjeravanje skeniranja u određena polja u starim terminalskim aplikacijama.

Ograničenja testiranja u pregledniku

Preglednik ne vidi sirove USB HID pakete, ne može nabrojiti spojene HID uređaje posebno kao skenere (osim putem API-ja WebHID, preko kojeg većina skenera ne izlaže podatke) i ne može razlikovati skener u HID načinu tipkovnice od prave tipkovnice. JavaScriptu su dostupni samo događaji tipkovnice vidljivi pregledniku (keydown, keyup, keypress), a upravo njih pregledavaju alati na ovoj stranici.

Povezano

Upotrijebite tester događaja tipkovnice za pregled sirovih događaja tipkovnice ili pročitajte vodič Sufiksi ENTER i TAB za pojedinosti konfiguracije sufiksa.