Barcode Scanner Emulator
HID कीबोर्ड वेज की व्याख्या
कीबोर्ड वेज बारकोड स्कैनरों के विशाल बहुमत का डिफ़ॉल्ट संचालन मोड है। यह गाइड बताती है कि यह क्या है, USB स्तर पर कैसे काम करता है, और आपके एप्लिकेशन के परीक्षण के लिए इसका क्या अर्थ है।
कीबोर्ड वेज क्या है?
शब्द पुराने सीरियल-पोर्ट स्कैनरों से आया है जो सचमुच कीबोर्ड और उसके कंप्यूटर पोर्ट के बीच फँस जाते थे, कीबोर्ड सिग्नल रोकते थे और उसमें स्कैन किए अक्षर डालते थे। आधुनिक स्कैनरों को भौतिक वेज की ज़रूरत नहीं — अब यह वाक्यांश किसी भी ऐसे स्कैनर को कहते हैं जो स्कैन किया डेटा ऐसे पेश करे जैसे वह कीबोर्ड से आया हो, कनेक्शन प्रकार चाहे जो हो।
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 कीबोर्ड-मोड स्कैनर को असली कीबोर्ड से अलग नहीं पहचान सकता। JavaScript को केवल ब्राउज़र-दृश्य कीबोर्ड इवेंट (keydown, keyup, keypress) उपलब्ध हैं, और इसी साइट के टूल उन्हीं की जाँच करते हैं।
संबंधित
कच्चे कीबोर्ड इवेंट देखने के लिए कीबोर्ड इवेंट टेस्टर का उपयोग करें, या प्रत्यय कॉन्फ़िगरेशन के विवरण के लिए ENTER बनाम TAB प्रत्यय गाइड पढ़ें।