Barcode Scanner Emulator
Paliwanag sa HID keyboard wedge
Ang keyboard wedge ang default na operating mode ng napakalaking mayorya ng mga barcode scanner. Ipinapaliwanag ng gabay na ito kung ano ito, paano ito gumagana sa antas ng USB, at ano ang ibig sabihin nito sa pagsubok ng iyong application.
Ano ang keyboard wedge?
Nagmula ang termino sa mas lumang serial-port scanner na literal na "isiniksik" sa pagitan ng keyboard at ng port ng computer nito, humaharang sa signal ng keyboard at nagsisingit ng mga na-scan na karakter dito. Hindi na kailangan ng modernong scanner ang pisikal na pagsisiksik — tumutukoy na ngayon ang parirala sa anumang scanner na nagpapakita ng na-scan na data na para bang galing sa keyboard, anuman ang uri ng koneksyon.
USB HID at keyboard emulation
Tinutukoy ng USB ang isang Human Interface Device (HID) class para sa mga keyboard, mouse, at katulad na input device. Kapag nag-enumerate ang scanner sa USB bilang HID keyboard, nilo-load ng OS ang generic at built-in nitong keyboard driver — hindi kailangan ng driver na partikular sa scanner. Kino-convert ng firmware ng scanner ang bawat na-decode na karakter tungo sa HID keycode na ipapadala ng pisikal na keyboard, at inihahatid ang mga report sa parehong interrupt transfer mechanism na ginagamit ng anumang USB keyboard.
Paano nakikita ng iyong application ang input ng scanner
Mabilis na burst ng keystroke laban sa pag-type ng tao: ipinapadala ng scanner ang buong payload bilang mabilis na sequence ng keydown/keyup pair, karaniwang natatapos nang wala pang isang segundo anuman ang haba ng barcode.
Walang mouse event: ang mga scanner sa HID keyboard mode ay hindi kailanman lumilikha ng pointer, click, o focus event. Kung hindi naka-focus ang iyong field kapag nangyari ang scan, nawawala ang input o napupunta sa elementong may focus.
Walang paste event: dahil dumarating ang data bilang indibidwal na keystroke at hindi bilang operasyon ng clipboard, hindi makikita ng mga handler ng paste event ang input ng scanner, at ang mga input mask na nakikinig lang sa paste ay tahimik na makakaligtaan ito.
Mga isyu sa keyboard layout
Bakit lumalabas ang maling karakter: ini-map ng scanner ang mga na-decode na karakter sa HID keycode gamit ang sarili nitong naka-configure na keyboard layout. Kung hindi tumutugma ang layout na iyon sa keyboard layout ng OS, maaaring magkapalit ang mga karakter — klasikong sintomas ang pag-scan ng mga digit o bantas bilang maling karakter sa mga sistemang QWERTY laban sa AZERTY.
Hindi tugmang locale: isyu ito ng configuration sa panig ng scanner, hindi bug ng software. Karamihan ng scanner ay sumusuporta sa pagpapalit ng locale sa pamamagitan ng configuration barcode na nakalimbag sa manual nila, at ang pag-aayos ay nangangahulugan ng muling pag-program ng scanner upang tumugma sa locale ng OS, hindi ng pagbabago ng code ng application.
Mga prefix at suffix
Karaniwang sinusuportahan ng mga scanner ang nako-configure na prefix at suffix sequence sa paligid ng payload. Ang pinakakaraniwang halaga ng suffix ay ENTER (CR, 0x0D), TAB (0x09), at paminsan-minsan ay buong pares na CR+LF. Mas bihira ang mga prefix ngunit ginagamit kung minsan upang iruta ang mga scan sa partikular na field sa mga legacy na terminal application.
Mga limitasyon sa pagsubok sa browser
Hindi nakikita ng browser ang hilaw na USB HID packet, hindi nito mai-enumerate ang mga nakakonektang HID device bilang scanner nang partikular (maliban sa WebHID API, na hindi pinaglalabasan ng data ng karamihan ng scanner), at hindi nito matukoy ang scanner sa HID keyboard mode mula sa totoong keyboard. Ang mga keyboard event lang na nakikita ng browser (keydown, keyup, keypress) ang naa-access ng JavaScript, at iyon mismo ang sinisiyasat ng mga tool sa site na ito.
Kaugnay
Gamitin ang Tester ng keyboard event upang suriin ang hilaw na keyboard event, o basahin ang gabay na Mga hulaping ENTER laban sa TAB para sa detalye ng configuration ng suffix.