Barcode Scanner Emulator
Penjelasan keyboard wedge HID
Keyboard wedge adalah mode operasi bawaan bagi sebagian besar pemindai kode batang. Panduan ini menjelaskan apa itu, cara kerjanya di tingkat USB, dan apa artinya untuk pengujian aplikasi Anda.
Apa itu keyboard wedge?
Istilah ini berasal dari pemindai port serial lama yang secara harfiah "diselipkan" di antara papan ketik dan port komputernya, mencegat sinyal papan ketik dan menyisipkan karakter yang dipindai ke dalamnya. Pemindai modern tidak lagi membutuhkan penyisipan fisik — frasa ini sekarang merujuk pada pemindai apa pun yang menyajikan data hasil pindai seolah-olah berasal dari papan ketik, apa pun jenis koneksinya.
USB HID dan emulasi papan ketik
USB menetapkan kelas Human Interface Device (HID) khusus untuk papan ketik, tetikus, dan perangkat masukan sejenis. Saat pemindai enumerasi di USB sebagai papan ketik HID, sistem operasi memuat driver papan ketik generik bawaannya — tidak perlu driver khusus pemindai. Firmware pemindai mengubah setiap karakter yang didekode menjadi keycode HID yang akan dikirim papan ketik fisik, dan laporan dikirim lewat mekanisme transfer interupsi yang sama dengan papan ketik USB apa pun.
Cara aplikasi Anda melihat masukan pemindai
Semburan ketukan yang cepat dibanding pengetikan manusia: pemindai mengirim seluruh muatan sebagai rangkaian pasangan keydown/keyup yang cepat, biasanya selesai dalam waktu kurang dari satu detik berapa pun panjang kode batangnya.
Tidak ada peristiwa tetikus: pemindai dalam mode papan ketik HID tidak pernah menghasilkan peristiwa penunjuk, klik, atau fokus. Jika bidang Anda tidak fokus saat pemindaian terjadi, masukan hilang atau masuk ke elemen yang sedang memegang fokus.
Tidak ada peristiwa tempel: karena data datang sebagai ketukan terpisah, bukan operasi papan klip, penangan peristiwa paste tidak melihat masukan pemindai, dan masker masukan yang hanya mendengarkan paste akan melewatkannya diam-diam.
Masalah tata letak papan ketik
Mengapa karakter yang salah muncul: pemindai memetakan karakter yang didekode ke keycode HID memakai tata letak papan ketik yang dikonfigurasinya sendiri. Jika tata letak itu tidak cocok dengan tata letak papan ketik sistem operasi, karakter bisa tertukar — gejala klasik adalah angka atau tanda baca terpindai sebagai karakter yang salah pada sistem QWERTY dibanding AZERTY.
Ketidakcocokan lokal: ini masalah konfigurasi di sisi pemindai, bukan bug perangkat lunak. Sebagian besar pemindai mendukung pergantian lokal lewat kode batang konfigurasi yang tercetak di manualnya, dan perbaikannya berarti memprogram ulang pemindai agar sesuai dengan lokal sistem operasi, bukan mengubah kode aplikasi.
Awalan dan akhiran
Pemindai umumnya mendukung urutan awalan dan akhiran yang dapat dikonfigurasi di sekitar muatan. Nilai akhiran yang paling umum adalah ENTER (CR, 0x0D), TAB (0x09), dan kadang pasangan CR+LF penuh. Awalan lebih jarang, tetapi kadang dipakai untuk mengarahkan pindaian ke bidang tertentu di aplikasi terminal lama.
Batasan pengujian di peramban
Peramban tidak bisa melihat paket USB HID mentah, tidak bisa mengenumerasi perangkat HID yang terhubung secara khusus sebagai pemindai (di luar API WebHID, yang tidak dipakai sebagian besar pemindai untuk mengekspos data), dan tidak bisa membedakan pemindai mode papan ketik HID dari papan ketik sungguhan. Hanya peristiwa papan ketik yang terlihat peramban (keydown, keyup, keypress) yang dapat diakses JavaScript, dan itulah yang diperiksa alat di situs ini.
Terkait
Gunakan penguji peristiwa papan ketik untuk memeriksa peristiwa papan ketik mentah, atau baca panduan Akhiran ENTER vs TAB untuk rincian konfigurasi akhiran.