Barcode Scanner Emulator
Fonctionnement des scanneurs de codes à barres
La lecture d'un code à barres semble instantanée, mais quatre étapes distinctes séparent le code physique du caractère qui aboutit dans votre application. Bien saisir chaque étape rend les bogues liés au scanneur beaucoup plus simples à cerner.
Les quatre étapes de la lecture d'un code à barres
1. Éclairage et capture de l'image
Les scanneurs laser balaient le code à barres au moyen d'un faisceau et mesurent l'intensité de la lumière réfléchie. Les scanneurs à capteur d'image (la plupart des appareils portatifs récents et des scanneurs par caméra de téléphone) captent une image 2D du code à barres grâce à un petit capteur CMOS, semblable à un appareil photo de faible résolution.
2. Décodage
Le microprogramme intégré analyse la largeur des barres (ou l'image 2D, pour les codes QR et Data Matrix) et la décode en contenu numérique d'origine, selon l'algorithme de la symbologie visée — Code 128, Code 39, EAN-13, QR, et ainsi de suite. Tout se déroule à l'intérieur du scanneur, avant que des données n'atteignent votre ordinateur.
3. Communication
Le contenu décodé est transmis à l'ordinateur hôte. Le transport est habituellement l'USB, et la très grande majorité des scanneurs grand public et industriels se présentent au système d'exploitation comme un clavier USB HID plutôt que comme une classe USB maison. Certains scanneurs offrent d'autres modes, comme l'USB sériel (émulation de port COM) ou le Bluetooth HID, mais l'émulation de clavier demeure le réglage par défaut de presque tous les scanneurs vendus aujourd'hui.
4. Saisie dans l'application
Puisque le scanneur agit comme un clavier, le système d'exploitation remet le contenu sous forme d'une suite d'événements clavier à l'application qui détient le focus du clavier. Votre application ne dialogue jamais directement avec le scanneur : elle reçoit simplement des frappes, exactement comme si quelqu'un les avait tapées très rapidement.
Pourquoi la plupart des scanneurs se comportent comme un clavier
Le mode clavier HID est le réglage par défaut de presque tous les scanneurs de codes à barres commerciaux, parce qu'il n'exige aucun pilote à installer. Tout système d'exploitation qui accepte un clavier USB accepte le scanneur dès qu'on le branche.
L'émulation de clavier USB signifie que le microprogramme du scanneur associe chaque caractère décodé au keycode USB HID qu'un clavier enverrait pour ce caractère, puis transmet des rapports de clavier HID standard par le point de terminaison d'interruption USB.
Pourquoi cela compte pendant les essais : comme le scanneur est impossible à distinguer d'un clavier au niveau de l'application, vous pouvez mettre à l'essai une grande part du comportement commandé par le scanneur en tapant rapidement dans une zone qui a le focus, ou en utilisant un outil de navigateur qui examine les événements clavier (voir les outils liés plus bas).
Suffixes ENTER et TAB
La plupart des scanneurs sont réglés pour ajouter une frappe de suffixe après le contenu décodé, le plus souvent ENTER (retour de chariot, 0x0D), parfois TAB (0x09) ou une séquence personnalisée. Ainsi, l'application qui reçoit les données sait où se termine la valeur lue sans recourir à un délai d'inactivité. Le suffixe agit comme un signal d'envoi, à la manière d'une pression sur Entrée après avoir rempli une zone de texte.
Minutage du scanneur
Un scanneur transmet tout le contenu d'un code à barres en bien moins d'une seconde, souvent avec seulement quelques millisecondes entre les caractères. Une personne qui tape la même chaîne laisse habituellement 100 à 300 ms ou plus entre les frappes. Cet écart de minutage est à la base de la logique de « détection du scanneur » dans bien des applications de POS et d'inventaire, qui surveillent les salves de saisie inhabituellement rapides suivies tout de suite d'une touche de suffixe.
Pour votre application, cela veut dire ceci : si vous voulez distinguer la saisie du scanneur de la frappe manuelle, mesurez le temps entre les frappes au lieu de chercher un indicateur spécial, car les événements clavier habituels du navigateur ne contiennent aucune information sur la source de la saisie.
Faites l'essai vous-même
Servez-vous de l'outil d'essai de saisie de codes à barres pour lire un vrai code à barres et voir en temps réel la valeur captée, le minutage et la détection du suffixe. Pour approfondir le mode en coin de clavier, poursuivez avec Le mode en coin de clavier HID expliqué.