דילוג לתוכן

Barcode Scanner Emulator

סיומות ENTER מול TAB בסורקי ברקוד

סיומת היא הקשה שהסורק שולח מיד אחרי מטען הברקוד המפוענח. בחירת הסיומת הנכונה וטיפול נכון בה באפליקציה הם אחד המקורות הנפוצים ביותר לבאגי אינטגרציה של סורק.

מהן סיומות ולמה סורקים שולחים אותן

מכיוון שסורק פולט את המטען כהקשות גולמיות בלי מפריד מובנה, לאפליקציה המקבלת אין דרך אמינה לדעת שהסריקה הסתיימה אלא אם הסורק מוסיף הקשת סיום מפורשת. הסיום הזה הוא הסיומת. בלעדיה אפליקציות היו צריכות לנחש השלמה לפי פסק זמן של חוסר פעילות, וזה איטי ופחות אמין.

ENTER (CR)

הסיומת הנפוצה ביותר. נשלחת כמקש Enter/Return, שמקביל לחזרת גררה, 0x0D ב-ASCII. ברוב טפסי ה-HTML לחיצה על Enter בתוך שדה טקסט יחיד שולחת את הטופס העוטף, ולכן ENTER מתאים באופן טבעי לתהליכי סריקה ושליחה כמו תיבת חיפוש או איתור בשדה יחיד.

TAB

נשלח כמקש Tab, 0x09. במקום לשלוח טופס, Tab מעביר את המיקוד לרכיב הבא שאפשר למקד. הסיומת הזו עדיפה בהזנת נתונים מרובת שלבים, למשל סריקת קוד מוצר, מעבר אוטומטי לשדה כמות, ואז סריקת הפריט הבא, בלי שליחה מוקדמת.

זוגות CR/LF והיעדר סיומת

חלק מהסורקים ניתנים להגדרה לשליחת זוג CR+LF מלא (נפוץ בהזנת יישומי מסוף או סגנון טורי), וחלק ניתנים להגדרה בלי סיומת כלל. במקרה כזה האפליקציה חייבת לזהות את סיום הסריקה לפי תזמון הקלט.

למה זה חשוב ל-POS ולאפליקציות אינטרנט

סיומת שגויה יוצרת באגים מאוד ספציפיים ומבלבלים: סיומת ENTER בטופס מרובה שדות יכולה לשלוח את הטופס לפני ששדות הכמות או ההנחה מולאו, בעוד סיומת TAB בתהליך של תיבת חיפוש יחידה משאירה את החיפוש לא מבוצע כי שום דבר לא הפעיל שליחה. חיוני להתאים את הסיומת לתהליך העבודה, לא רק להשאיר את ברירת המחדל מהמפעל.

איך לבדוק התנהגות סיומת

סרקו אל בודק קלט ברקוד, שמדווח במפורש אם ENTER או TAB זוהו בסוף הסריקה. אם צריך לראות את קודי המקש המדויקים (למשל כדי להבדיל בין CR ל-LF), השתמשו במקום זאת בבודק אירועי מקלדת.

שינוי הסיומת בסורק

התנהגות הסיומת היא הגדרה בצד הסורק, שמוגדרת דרך כלי התוכנה של היצרן או בסריקת ברקוד הגדרה מיוחד המודפס במדריך הסורק. ראו את המדריך הגדרת סורק ברקוד לתהליך ההגדרה הכללי.