Pereiti prie turinio

Barcode Scanner Emulator

HID klaviatūros pleišto paaiškinimas

Klaviatūros pleištas yra numatytasis veikimo režimas didžiajai daugumai brūkšninių kodų skaitytuvų. Šiame vadove paaiškinama, kas tai yra, kaip tai veikia USB lygmeniu ir ką tai reiškia testuojant programą.

Kas yra klaviatūros pleištas?

Terminas kilęs iš senesnių nuosekliojo prievado skaitytuvų, kurie būdavo tiesiogine prasme „įsprausti“ (angl. wedged) tarp klaviatūros ir jos kompiuterio prievado, perimdavo klaviatūros signalą ir į jį įterpdavo nuskaitytus simbolius. Šiuolaikiniams skaitytuvams fizinio įspraudimo nebereikia: dabar ši frazė reiškia bet kurį skaitytuvą, kuris nuskaitytus duomenis pateikia taip, lyg jie būtų atėję iš klaviatūros, nepriklausomai nuo jungties tipo.

USB HID ir klaviatūros emuliacija

USB apibrėžia Human Interface Device (HID) klasę būtent klaviatūroms, pelėms ir panašiems įvesties įrenginiams. Kai skaitytuvas per USB išvardijamas kaip HID klaviatūra, operacinė sistema įkelia bendrąją integruotą klaviatūros tvarkyklę — atskiros skaitytuvo tvarkyklės nereikia. Skaitytuvo programinė aparatinė įranga kiekvieną dekoduotą simbolį paverčia HID klavišo kodu, kurį siųstų fizinė klaviatūra, o ataskaitos pristatomos tuo pačiu pertraukčių perdavimu, kurį naudoja bet kuri USB klaviatūra.

Kaip programa mato skaitytuvo įvestį

Greitas klavišų pliūpsnis, o ne žmogaus rinkimas: skaitytuvas visą apkrovą siunčia kaip greitą keydown/keyup porų seką ir paprastai baigia greičiau nei per sekundę, nepriklausomai nuo brūkšninio kodo ilgio.

Nėra pelės įvykių: HID klaviatūros režimo skaitytuvai niekada negeneruoja žymeklio, spustelėjimo ar fokuso įvykių. Jei nuskaitymo metu laukas nėra sufokusuotas, įvestis prarandama arba patenka į tą elementą, kuris fokusą turi.

Nėra įklijavimo įvykių: kadangi duomenys ateina kaip atskiri klavišų paspaudimai, o ne kaip mainų srities operacija, paste įvykių apdorotuvai skaitytuvo įvesties nematys, o įvesties kaukės, kurios klauso tik paste, ją tyliai praleis.

Klaviatūros išdėstymo problemos

Kodėl atsiranda neteisingi simboliai: skaitytuvas dekoduotus simbolius susieja su HID klavišų kodais pagal savo sukonfigūruotą klaviatūros išdėstymą. Jei tas išdėstymas nesutampa su operacinės sistemos klaviatūros išdėstymu, simboliai gali būti sukeisti. Klasikinis požymis: skaitmenys ar skyryba QWERTY ir AZERTY sistemose nuskaitomi kaip neteisingas simbolis.

Lokalės neatitiktis: tai skaitytuvo konfigūracijos problema, o ne programinės įrangos klaida. Dauguma skaitytuvų palaiko lokalės keitimą per vadove atspausdintus konfigūravimo brūkšninius kodus, o pataisymas reiškia skaitytuvo perprogramavimą, kad jis atitiktų operacinės sistemos lokalę, o ne programos kodo keitimą.

Priešdėliai ir priesagos

Skaitytuvai paprastai palaiko konfigūruojamas priešdėlio ir priesagos sekas aplink apkrovą. Dažniausios priesagos reikšmės yra ENTER (CR, 0x0D), TAB (0x09) ir kartais visa CR+LF pora. Priešdėliai retesni, bet kartais naudojami nukreipti nuskaitymus į konkrečius laukus senose terminalo programose.

Apribojimai testuojant naršyklėje

Naršyklė nemato neapdorotų USB HID paketų, negali išvardyti prijungtų HID įrenginių būtent kaip skaitytuvo (išskyrus WebHID API, per kurį dauguma skaitytuvų duomenų neatskleidžia) ir negali atskirti HID klaviatūros režimo skaitytuvo nuo tikros klaviatūros. JavaScript pasiekiami tik naršyklei matomi klaviatūros įvykiai (keydown, keyup, keypress), ir būtent juos tikrina šios svetainės įrankiai.

Susiję

Naudokite klaviatūros įvykių testerį, kad patikrintumėte neapdorotus klaviatūros įvykius, arba skaitykite ENTER ir TAB priesagų vadovą, kuriame aprašyta priesagų konfigūracija.