Aller au contenu

Barcode Scanner Emulator

Fonctionnement des lecteurs de codes-barres

Une lecture de code-barres paraît instantanée, mais quatre étapes distinctes séparent le code physique du caractère qui arrive dans votre application. Comprendre chaque étape rend les bugs liés au lecteur beaucoup plus simples à diagnostiquer.

Les quatre étapes d'une lecture de code-barres

1. Éclairage et capture d'image

Les lecteurs laser balaient le code-barres avec un faisceau et mesurent l'intensité de la lumière réfléchie. Les lecteurs à imageur (la plupart des douchettes modernes et des lecteurs par caméra de téléphone) capturent une image 2D du code-barres avec un petit capteur CMOS, comparable à un appareil photo de faible résolution.

2. Décodage

Le micrologiciel embarqué analyse les largeurs de barres (ou l'image 2D, pour les codes QR et Data Matrix) et les décode en charge utile numérique d'origine, selon l'algorithme de la symbologie concernée — Code 128, Code 39, EAN-13, QR, et ainsi de suite. Tout cela se passe dans le lecteur lui-même, avant que la moindre donnée n'atteigne votre ordinateur.

3. Communication

La charge utile décodée est transmise à l'ordinateur hôte. Le transport est en général l'USB, et l'immense majorité des lecteurs grand public et industriels se présentent au système d'exploitation comme un clavier USB HID plutôt que comme une classe USB propriétaire. Certains lecteurs prennent en charge d'autres modes, comme l'USB série (émulation de port COM) ou le Bluetooth HID, mais le mode d'émulation clavier est le réglage par défaut de presque tous les lecteurs vendus aujourd'hui.

4. Saisie applicative

Comme le lecteur agit en tant que clavier, le système d'exploitation livre la charge utile sous forme d'une suite d'événements clavier à l'application qui a actuellement le focus clavier. Votre application ne parle jamais directement au lecteur : elle reçoit simplement des frappes, exactement comme si quelqu'un les avait tapées très vite.

Pourquoi la plupart des lecteurs se comportent comme des claviers

Le mode clavier HID est la configuration par défaut de presque tous les lecteurs de codes-barres du commerce, car il ne demande aucune installation de pilote. Tout système d'exploitation qui prend en charge un clavier USB prend en charge le lecteur dès le branchement.

L'émulation de clavier USB signifie que le micrologiciel du lecteur associe chaque caractère décodé au keycode USB HID qu'un clavier enverrait pour ce caractère, puis transmet des rapports clavier HID standard sur le point de terminaison d'interruption USB.

Pourquoi c'est important pour les tests : puisque le lecteur est indiscernable d'un clavier au niveau applicatif, vous pouvez tester une grande partie du comportement piloté par le lecteur en tapant rapidement dans un champ qui a le focus, ou en utilisant un outil de navigateur qui inspecte les événements clavier (voir les outils liés ci-dessous).

Suffixes ENTER et TAB

La plupart des lecteurs sont configurés pour ajouter une frappe de suffixe après la charge utile décodée, le plus souvent ENTER (retour chariot, 0x0D), parfois TAB (0x09) ou une séquence personnalisée. Cela permet à l'application réceptrice de savoir où s'arrête la valeur lue sans délai d'inactivité : le suffixe sert de signal d'envoi, comme une pression sur Entrée après la saisie dans un champ de texte.

Temporisation du lecteur

Un lecteur transmet toute la charge utile d'un code-barres en bien moins d'une seconde, souvent avec quelques millisecondes seulement entre les caractères. Une personne qui tape la même chaîne laisse en général 100 à 300 ms ou plus entre les frappes. Cet écart de temporisation est la base de la logique de « détection de lecteur » dans de nombreuses applications de POS et d'inventaire, qui surveillent les rafales de saisie inhabituellement rapides suivies immédiatement d'une touche de suffixe.

Pour votre application, cela signifie : si vous voulez distinguer la saisie du lecteur de la frappe manuelle, mesurez le temps entre les frappes plutôt que de chercher un indicateur spécial, car les événements clavier standard du navigateur ne portent aucune information sur la source de la saisie.

Essayez vous-même

Utilisez le testeur de saisie de codes-barres pour lire un vrai code-barres et voir en temps réel la valeur capturée, la temporisation et la détection du suffixe. Pour aller plus loin sur le comportement du keyboard wedge, poursuivez avec L'émulation clavier HID expliquée.