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.