Μετάβαση στο περιεχόμενο

Barcode Scanner Emulator

Πώς λειτουργούν οι σαρωτές γραμμωτού κώδικα

Μια σάρωση γραμμωτού κώδικα φαίνεται στιγμιαία, αλλά ανάμεσα στον φυσικό κώδικα και τον χαρακτήρα που καταλήγει στην εφαρμογή υπάρχουν τέσσερα ξεχωριστά στάδια. Όταν κατανοείτε κάθε στάδιο, τα σφάλματα που σχετίζονται με τον σαρωτή διαγιγνώσκονται πολύ πιο εύκολα.

Τα τέσσερα στάδια μιας σάρωσης γραμμωτού κώδικα

1. Φωτισμός και λήψη εικόνας

Οι σαρωτές λέιζερ σαρώνουν τον κώδικα με δέσμη και μετρούν την ένταση του ανακλώμενου φωτός. Οι σαρωτές εικόνας (οι περισσότεροι σύγχρονοι σαρωτές χειρός και οι κάμερες τηλεφώνου) αποτυπώνουν μια εικόνα 2D του κώδικα με έναν μικρό αισθητήρα CMOS, παρόμοιο με κάμερα χαμηλής ανάλυσης.

2. Αποκωδικοποίηση

Το ενσωματωμένο υλικολογισμικό αναλύει τα πλάτη των γραμμών (ή την εικόνα 2D, για κώδικες QR και Data Matrix) και τα αποκωδικοποιεί στο αρχικό ψηφιακό ωφέλιμο φορτίο, με τον αλγόριθμο της συγκεκριμένης συμβολογίας — Code 128, Code 39, EAN-13, QR και άλλα. Όλα αυτά γίνονται μέσα στον ίδιο τον σαρωτή, πριν φτάσουν δεδομένα στον υπολογιστή.

3. Επικοινωνία

Το αποκωδικοποιημένο ωφέλιμο φορτίο μεταδίδεται στον υπολογιστή υποδοχής. Η μεταφορά είναι συνήθως USB και η συντριπτική πλειονότητα των καταναλωτικών και βιομηχανικών σαρωτών εμφανίζεται στο λειτουργικό σύστημα ως πληκτρολόγιο USB HID και όχι ως δική τους κλάση USB. Ορισμένοι σαρωτές υποστηρίζουν εναλλακτικές λειτουργίες, όπως σειριακό USB (εξομοίωση θύρας COM) ή Bluetooth HID, αλλά η εξομοίωση πληκτρολογίου είναι η προεπιλογή σχεδόν σε κάθε σαρωτή που πωλείται σήμερα.

4. Εισαγωγή στην εφαρμογή

Επειδή ο σαρωτής λειτουργεί ως πληκτρολόγιο, το λειτουργικό σύστημα παραδίδει το ωφέλιμο φορτίο ως ακολουθία συμβάντων πλήκτρων στην εφαρμογή που έχει εκείνη τη στιγμή την εστίαση του πληκτρολογίου. Η εφαρμογή δεν μιλά ποτέ απευθείας με τον σαρωτή — λαμβάνει μόνο πατήματα πλήκτρων, ακριβώς σαν να τα είχε πληκτρολογήσει κάποιος πολύ γρήγορα.

Γιατί οι περισσότεροι σαρωτές συμπεριφέρονται σαν πληκτρολόγια

Η λειτουργία πληκτρολογίου HID είναι η προεπιλεγμένη ρύθμιση σχεδόν σε όλους τους εμπορικούς σαρωτές γραμμωτού κώδικα, επειδή δεν απαιτεί εγκατάσταση προγράμματος οδήγησης. Κάθε λειτουργικό σύστημα που υποστηρίζει πληκτρολόγιο USB υποστηρίζει τον σαρωτή αμέσως.

Η εξομοίωση πληκτρολογίου USB σημαίνει ότι το υλικολογισμικό του σαρωτή αντιστοιχίζει κάθε αποκωδικοποιημένο χαρακτήρα στον κωδικό πλήκτρου HID USB που θα έστελνε ένα πληκτρολόγιο για αυτόν τον χαρακτήρα και έπειτα μεταδίδει κανονικές αναφορές πληκτρολογίου HID μέσω του τελικού σημείου διακοπής USB.

Γιατί έχει σημασία στις δοκιμές: στο επίπεδο της εφαρμογής ο σαρωτής δεν διακρίνεται από πληκτρολόγιο, οπότε μεγάλο μέρος της συμπεριφοράς που οδηγείται από τον σαρωτή δοκιμάζεται με γρήγορη πληκτρολόγηση σε πεδίο με εστίαση ή με ένα εργαλείο του προγράμματος περιήγησης που εξετάζει συμβάντα πληκτρολογίου (δείτε τα εργαλεία που συνδέονται παρακάτω).

Καταλήξεις ENTER και TAB

Οι περισσότεροι σαρωτές ρυθμίζονται ώστε να προσθέτουν ένα πάτημα κατάληξης μετά το αποκωδικοποιημένο ωφέλιμο φορτίο, συνήθως ENTER (επιστροφή φορέα, 0x0D), μερικές φορές όμως TAB (0x09) ή προσαρμοσμένη ακολουθία. Έτσι η εφαρμογή που λαμβάνει τα δεδομένα καταλαβαίνει πού τελειώνει η σαρωμένη τιμή χωρίς χρονικό όριο — η κατάληξη λειτουργεί ως σήμα υποβολής, όπως το πάτημα του Enter μετά την πληκτρολόγηση σε πεδίο κειμένου.

Χρονισμός του σαρωτή

Ένας σαρωτής μεταδίδει ολόκληρο το ωφέλιμο φορτίο ενός γραμμωτού κώδικα σε αρκετά λιγότερο από ένα δευτερόλεπτο, συχνά με κενά λίγων χιλιοστών του δευτερολέπτου ανάμεσα στους χαρακτήρες. Ένας άνθρωπος που πληκτρολογεί την ίδια συμβολοσειρά έχει συνήθως κενά 100–300 ms ή περισσότερα. Αυτή η διαφορά είναι η βάση της «ανίχνευσης σαρωτή» σε πολλές εφαρμογές POS και αποθήκης, που παρακολουθούν ασυνήθιστα γρήγορες ριπές εισαγωγής ακολουθούμενες αμέσως από πλήκτρο κατάληξης.

Για την εφαρμογή σας αυτό σημαίνει: αν θέλετε να ξεχωρίσετε την εισαγωγή του σαρωτή από τη χειροκίνητη πληκτρολόγηση, μετρήστε τον χρόνο ανάμεσα στα πατήματα αντί να αναζητάτε ειδική σημαία. Τα συνηθισμένα συμβάντα πληκτρολογίου του προγράμματος περιήγησης δεν περιέχουν πληροφορία για την πηγή της εισαγωγής.

Δοκιμάστε το μόνοι σας

Χρησιμοποιήστε τον ελεγκτή εισαγωγής γραμμωτού κώδικα για να σαρώσετε έναν πραγματικό κώδικα και να δείτε σε πραγματικό χρόνο την τιμή, τον χρονισμό και την ανίχνευση της κατάληξης. Για βαθύτερη ματιά στη σφή πληκτρολογίου συνεχίστε στο Η σφή πληκτρολογίου HID εξηγείται.