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 מחוברים כסורקים באופן ספציפי (מחוץ ל-API של WebHID, שרוב הסורקים לא חושפים דרכו נתונים), ולא יכול להבדיל בין סורק במצב מקלדת HID למקלדת אמיתית. רק אירועי מקלדת גלויים לדפדפן (keydown, keyup, keypress) נגישים ל-JavaScript, וזה בדיוק מה שהכלים באתר הזה בודקים.
קשור
השתמשו בבודק אירועי מקלדת כדי לבדוק אירועי מקלדת גולמיים, או קראו את המדריך סיומות ENTER מול TAB לפרטי הגדרת הסיומת.