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 সাফিক্স গাইড পড়ুন।