Barcode Scanner Emulator
Giải thích HID keyboard wedge
Keyboard wedge là chế độ hoạt động mặc định của phần lớn máy quét mã vạch. Hướng dẫn này giải thích đó là gì, cách hoạt động ở mức USB và ý nghĩa khi kiểm thử ứng dụng.
Keyboard wedge là gì?
Thuật ngữ bắt nguồn từ các máy quét cổng nối tiếp cũ, được “nêm” đúng nghĩa giữa bàn phím và cổng máy tính, chặn tín hiệu bàn phím rồi chèn ký tự đã quét vào đó. Máy quét hiện đại không còn cần nêm vật lý — cụm từ nay chỉ mọi máy quét trình bày dữ liệu đã quét như thể đến từ bàn phím, bất kể kiểu kết nối.
USB HID và mô phỏng bàn phím
USB định nghĩa lớp Human Interface Device (HID) dành cho bàn phím, chuột và thiết bị nhập tương tự. Khi máy quét liệt kê trên USB như bàn phím HID, hệ điều hành nạp trình điều khiển bàn phím tích hợp chung — không cần trình điều khiển riêng cho máy quét. Phần mềm cơ sở của máy quét chuyển mỗi ký tự đã giải mã thành mã phím HID mà bàn phím vật lý sẽ gửi, và báo cáo được chuyển bằng cùng cơ chế truyền ngắt như mọi bàn phím USB.
Ứng dụng nhìn thấy đầu vào máy quét như thế nào
Đợt nhấn phím nhanh so với người gõ: máy quét gửi toàn bộ nội dung thành chuỗi cặp keydown/keyup nhanh, thường xong trong chưa đầy một giây bất kể độ dài mã vạch.
Không có sự kiện chuột: máy quét ở chế độ bàn phím HID không bao giờ tạo sự kiện con trỏ, nhấp hay tiêu điểm. Nếu trường không có tiêu điểm khi quét, đầu vào bị mất hoặc rơi vào phần tử đang có tiêu điểm.
Không có sự kiện dán: vì dữ liệu đến từng lần nhấn phím chứ không phải thao tác khay nhớ tạm, trình xử lý sự kiện paste sẽ không thấy đầu vào máy quét, và mặt nạ nhập chỉ lắng nghe paste sẽ bỏ lỡ nó một cách im lặng.
Sự cố bố cục bàn phím
Vì sao xuất hiện ký tự sai: máy quét ánh xạ ký tự đã giải mã sang mã phím HID theo bố cục bàn phím đã cấu hình của chính nó. Nếu bố cục đó không khớp bố cục của hệ điều hành, ký tự có thể bị đảo — triệu chứng kinh điển là chữ số hoặc dấu câu quét thành ký tự sai trên hệ thống QWERTY so với AZERTY.
Lệch ngôn ngữ: đây là sự cố cấu hình phía máy quét, không phải lỗi phần mềm. Hầu hết máy quét hỗ trợ đổi ngôn ngữ qua mã vạch cấu hình in trong sách hướng dẫn, và cách sửa là lập trình lại máy quét cho khớp ngôn ngữ hệ điều hành, không phải đổi mã ứng dụng.
Tiền tố và hậu tố
Máy quét thường hỗ trợ chuỗi tiền tố và hậu tố có thể cấu hình quanh dữ liệu. Giá trị hậu tố phổ biến nhất là ENTER (CR, 0x0D), TAB (0x09) và đôi khi cả cặp CR+LF. Tiền tố ít gặp hơn nhưng đôi khi dùng để định tuyến lần quét tới trường cụ thể trong ứng dụng đầu cuối cũ.
Giới hạn khi kiểm thử trên trình duyệt
Trình duyệt không thấy gói USB HID thô, không liệt kê thiết bị HID đã kết nối riêng như một máy quét (ngoài WebHID API, mà hầu hết máy quét không đưa dữ liệu qua đó) và không phân biệt máy quét chế độ bàn phím HID với bàn phím thật. JavaScript chỉ truy cập được sự kiện bàn phím mà trình duyệt thấy (keydown, keyup, keypress), đúng những gì công cụ trên trang này kiểm tra.
Liên quan
Dùng trình kiểm thử sự kiện bàn phím để xem sự kiện bàn phím thô, hoặc đọc hướng dẫn Hậu tố ENTER và TAB để biết chi tiết cấu hình hậu tố.