सामग्री पर जाएँ

Barcode Scanner Emulator

बारकोड स्कैनर कैसे काम करते हैं

बारकोड स्कैन तुरंत लगता है, लेकिन भौतिक बारकोड और आपके एप्लिकेशन में पहुँचने वाले अक्षर के बीच चार अलग चरण होते हैं। हर चरण समझना स्कैनर से जुड़ी गड़बड़ियों का निदान बहुत आसान बनाता है।

बारकोड स्कैन के चार चरण

1. रोशनी और छवि कैप्चर

लेज़र स्कैनर बारकोड पर किरण घुमाते हैं और परावर्तित प्रकाश की तीव्रता मापते हैं। इमेजर-आधारित स्कैनर (ज़्यादातर आधुनिक हैंडहेल्ड और फ़ोन-कैमरा स्कैनर) छोटे CMOS सेंसर से बारकोड की 2D छवि लेते हैं, कम रिज़ॉल्यूशन वाले कैमरे की तरह।

2. डिकोडिंग

ऑनबोर्ड फ़र्मवेयर बार की चौड़ाई (या QR और Data Matrix कोड के लिए 2D छवि) का विश्लेषण करता है और उन्हें मूल डिजिटल पेलोड में डिकोड करता है, उस सिम्बोलॉजी के एल्गोरिदम से — Code 128, Code 39, EAN-13, QR इत्यादि। यह सब स्कैनर के अंदर होता है, इससे पहले कि कोई डेटा आपके कंप्यूटर तक पहुँचे।

3. संचार

डिकोड किया गया पेलोड होस्ट कंप्यूटर को भेजा जाता है। ट्रांसपोर्ट आमतौर पर USB होता है, और उपभोक्ता तथा औद्योगिक स्कैनरों की विशाल बहुसंख्या खुद को ऑपरेटिंग सिस्टम के सामने USB HID कीबोर्ड डिवाइस के रूप में पेश करती है, कस्टम USB क्लास के रूप में नहीं। कुछ स्कैनर वैकल्पिक मोड सपोर्ट करते हैं, जैसे USB सीरियल (COM पोर्ट एमुलेशन) या Bluetooth HID, लेकिन कीबोर्ड-एमुलेशन मोड आज बिकने वाले लगभग हर स्कैनर की डिफ़ॉल्ट सेटिंग है।

4. एप्लिकेशन इनपुट

क्योंकि स्कैनर कीबोर्ड की तरह काम कर रहा है, ऑपरेटिंग सिस्टम पेलोड को की-इवेंट के क्रम के रूप में उस एप्लिकेशन तक पहुँचाता है जिसके पास अभी कीबोर्ड फ़ोकस है। आपका एप्लिकेशन स्कैनर से सीधे कभी बात नहीं करता — उसे केवल कीस्ट्रोक मिलते हैं, ठीक वैसे जैसे किसी ने बहुत तेज़ी से टाइप किए हों।

ज़्यादातर स्कैनर कीबोर्ड की तरह क्यों व्यवहार करते हैं

HID कीबोर्ड मोड लगभग सभी व्यावसायिक बारकोड स्कैनरों की डिफ़ॉल्ट कॉन्फ़िगरेशन है क्योंकि इसके लिए ड्राइवर इंस्टॉल करने की ज़रूरत नहीं। जो भी ऑपरेटिंग सिस्टम USB कीबोर्ड सपोर्ट करता है, वह स्कैनर को जोड़ते ही सपोर्ट करता है।

USB कीबोर्ड एमुलेशन का मतलब है कि स्कैनर का फ़र्मवेयर हर डिकोड किए गए अक्षर को उस USB HID कीकोड से मैप करता है जिसे कीबोर्ड उस अक्षर के लिए भेजेगा, फिर USB इंटरप्ट एंडपॉइंट पर मानक HID कीबोर्ड रिपोर्ट भेजता है।

परीक्षण के लिए यह क्यों मायने रखता है: चूँकि एप्लिकेशन परत पर स्कैनर कीबोर्ड से अलग नहीं पहचाना जा सकता, आप स्कैनर-चालित व्यवहार का बड़ा हिस्सा फ़ोकस वाले फ़ील्ड में तेज़ टाइपिंग से, या कीबोर्ड इवेंट जाँचने वाले ब्राउज़र टूल से परख सकते हैं (नीचे लिंक किए टूल देखें)।

ENTER और TAB प्रत्यय

ज़्यादातर स्कैनर डिकोड किए गए पेलोड के बाद एक प्रत्यय कीस्ट्रोक जोड़ने के लिए कॉन्फ़िगर होते हैं, सबसे आम ENTER (कैरिज रिटर्न, 0x0D), कभी-कभी TAB (0x09) या कस्टम क्रम। इससे प्राप्त करने वाला एप्लिकेशन बिना टाइमआउट के जान लेता है कि स्कैन किया मान कहाँ खत्म होता है — प्रत्यय सबमिट सिग्नल की तरह काम करता है, टेक्स्ट फ़ील्ड में टाइप करने के बाद Enter दबाने जैसा।

स्कैनर का समय

स्कैनर पूरा बारकोड पेलोड एक सेकंड से काफ़ी कम में भेजता है, अक्सर अक्षरों के बीच कुछ मिलीसेकंड का अंतराल होता है। वही स्ट्रिंग टाइप करने वाला व्यक्ति आमतौर पर कीस्ट्रोक के बीच 100–300 ms या उससे अधिक छोड़ता है। यही समय-अंतर कई POS और इन्वेंटरी एप्लिकेशन की स्कैनर-पहचान लॉजिक का आधार है, जो असामान्य रूप से तेज़ इनपुट बर्स्ट और तुरंत बाद आने वाली प्रत्यय कुंजी देखते हैं।

आपके एप्लिकेशन के लिए इसका मतलब है: अगर आप स्कैनर इनपुट को मैन्युअल टाइपिंग से अलग करना चाहते हैं, तो कीस्ट्रोक के बीच का समय मापें, कोई विशेष फ़्लैग न खोजें, क्योंकि मानक ब्राउज़र कीबोर्ड इवेंट में इनपुट स्रोत की जानकारी नहीं होती।

खुद आज़माएँ

असली बारकोड स्कैन करके कैप्चर किया मान, समय और प्रत्यय पहचान रीयल टाइम में देखने के लिए बारकोड इनपुट टेस्टर का उपयोग करें। कीबोर्ड वेज व्यवहार की गहरी समझ के लिए HID कीबोर्ड वेज की व्याख्या पर जाएँ।