Barcode Scanner Emulator
คำอธิบาย HID keyboard wedge
Keyboard wedge เป็นโหมดทำงานเริ่มต้นของเครื่องสแกนบาร์โค้ดส่วนใหญ่ คู่มือนี้อธิบายว่ามันคืออะไร ทำงานในระดับ USB อย่างไร และมีความหมายอย่างไรเมื่อทดสอบแอปพลิเคชัน
keyboard wedge คืออะไร
คำนี้มาจากเครื่องสแกนพอร์ตอนุกรมรุ่นเก่าที่ถูก “สอด” ระหว่างแป้นพิมพ์กับพอร์ตคอมพิวเตอร์อย่างแท้จริง ดักสัญญาณแป้นพิมพ์แล้วแทรกอักขระที่สแกนเข้าไป เครื่องสแกนสมัยใหม่ไม่ต้องสอดทางกายภาพอีกต่อไป คำนี้หมายถึงเครื่องสแกนใดก็ตามที่นำเสนอข้อมูลที่สแกนราวกับมาจากแป้นพิมพ์ ไม่ว่าจะเชื่อมต่อแบบใด
USB HID และการจำลองแป้นพิมพ์
USB กำหนดคลาส Human Interface Device (HID) สำหรับแป้นพิมพ์ เมาส์ และอุปกรณ์อินพุตที่คล้ายกัน เมื่อเครื่องสแกนแจ้งตัวบน USB เป็นแป้นพิมพ์ HID ระบบปฏิบัติการจะโหลดไดรเวอร์แป้นพิมพ์ทั่วไปที่มีมาให้ ไม่ต้องใช้ไดรเวอร์เฉพาะของเครื่องสแกน เฟิร์มแวร์ของเครื่องสแกนแปลงอักขระที่ถอดรหัสแล้วเป็นรหัสแป้น HID ที่แป้นพิมพ์จริงจะส่ง และรายงานถูกส่งด้วยกลไกถ่ายโอนแบบอินเทอร์รัปต์เดียวกับแป้นพิมพ์ USB ทุกตัว
แอปพลิเคชันเห็นอินพุตจากเครื่องสแกนอย่างไร
การกดแป้นเป็นชุดเร็วเทียบกับการพิมพ์ของคน: เครื่องสแกนส่งข้อมูลทั้งหมดเป็นลำดับคู่ keydown/keyup ที่รวดเร็ว มักเสร็จภายในไม่ถึงหนึ่งวินาทีไม่ว่าบาร์โค้ดจะยาวเท่าใด
ไม่มีเหตุการณ์เมาส์: เครื่องสแกนในโหมดแป้นพิมพ์ HID ไม่สร้างเหตุการณ์ตัวชี้ การคลิก หรือโฟกัส หากช่องไม่มีโฟกัสตอนสแกน อินพุตจะหายไปหรือไปยังองค์ประกอบที่มีโฟกัสอยู่
ไม่มีเหตุการณ์วาง: เพราะข้อมูลมาเป็นการกดแป้นทีละครั้ง ไม่ใช่การทำงานของคลิปบอร์ด ตัวจัดการเหตุการณ์ paste จะไม่เห็นอินพุตจากเครื่องสแกน และมาสก์อินพุตที่ฟังเฉพาะ paste จะพลาดไปอย่างเงียบ ๆ
ปัญหาผังแป้นพิมพ์
เหตุใดจึงมีอักขระผิด: เครื่องสแกนจับคู่อักขระที่ถอดรหัสแล้วกับรหัสแป้น HID ตามผังแป้นพิมพ์ที่ตั้งค่าไว้ของตัวเอง หากผังนั้นไม่ตรงกับผังของระบบปฏิบัติการ อักขระอาจสลับที่ อาการคลาสสิกคือตัวเลขหรือเครื่องหมายวรรคตอนถูกสแกนเป็นอักขระผิดบนระบบ QWERTY เทียบกับ AZERTY
ภาษาไม่ตรงกัน: นี่เป็นปัญหาการตั้งค่าฝั่งเครื่องสแกน ไม่ใช่บั๊กของซอฟต์แวร์ เครื่องสแกนส่วนใหญ่รองรับการเปลี่ยนภาษาผ่านบาร์โค้ดตั้งค่าที่พิมพ์ในคู่มือ และการแก้คือโปรแกรมเครื่องสแกนใหม่ให้ตรงกับภาษาของระบบปฏิบัติการ ไม่ใช่แก้โค้ดแอปพลิเคชัน
ส่วนนำหน้าและส่วนต่อท้าย
เครื่องสแกนมักรองรับลำดับส่วนนำหน้าและส่วนต่อท้ายที่ตั้งค่าได้รอบข้อมูล ค่าส่วนต่อท้ายที่พบบ่อยที่สุดคือ ENTER (CR, 0x0D), TAB (0x09) และบางครั้งคู่ CR+LF ทั้งคู่ ส่วนนำหน้าพบน้อยกว่า แต่บางครั้งใช้ส่งการสแกนไปยังช่องเฉพาะในแอปพลิเคชันเทอร์มินัลรุ่นเก่า
ข้อจำกัดของการทดสอบในเบราว์เซอร์
เบราว์เซอร์มองไม่เห็นแพ็กเก็ต USB HID ดิบ ไม่สามารถแจงอุปกรณ์ HID ที่เชื่อมต่อในฐานะเครื่องสแกนโดยเฉพาะ (นอก WebHID API ซึ่งเครื่องสแกนส่วนใหญ่ไม่เปิดข้อมูลผ่านนั้น) และแยกเครื่องสแกนโหมดแป้นพิมพ์ HID ออกจากแป้นพิมพ์จริงไม่ได้ มีเพียงเหตุการณ์แป้นพิมพ์ที่เบราว์เซอร์เห็น (keydown, keyup, keypress) ที่ JavaScript เข้าถึงได้ ซึ่งเป็นสิ่งที่เครื่องมือบนไซต์นี้ตรวจสอบ
ที่เกี่ยวข้อง
ใช้ ตัวทดสอบเหตุการณ์แป้นพิมพ์ เพื่อตรวจเหตุการณ์แป้นพิมพ์ดิบ หรืออ่านคู่มือ ส่วนต่อท้าย ENTER และ TAB สำหรับรายละเอียดการตั้งค่าส่วนต่อท้าย