Barcode Scanner Emulator
Com funcionen els escàners de codis de barres
Una lectura de codi de barres sembla instantània, però comprèn quatre fases diferents entre el codi físic i el caràcter que arriba a l'aplicació. Entendre cada fase fa molt més fàcil diagnosticar els errors relacionats amb l'escàner.
Les quatre fases d'una lectura de codi de barres
1. Il·luminació i captura d'imatge
Els escàners làser escombren el codi amb un feix i mesuren la intensitat de la llum reflectida. Els escàners basats en imatge (la majoria d'escàners de mà moderns i les càmeres del telèfon) capturen una imatge 2D del codi amb un petit sensor CMOS, semblant a una càmera de baixa resolució.
2. Descodificació
El microprogramari intern analitza l'amplada de les barres (o la imatge 2D, en els codis QR i Data Matrix) i les descodifica fins a obtenir la càrrega útil digital original, amb l'algorisme de la simbologia concreta: Code 128, Code 39, EAN-13, QR, etc. Tot passa dins del mateix escàner, abans que cap dada arribi a l'ordinador.
3. Comunicació
La càrrega útil descodificada es transmet a l'ordinador amfitrió. El transport sol ser USB, i la gran majoria d'escàners de consum i industrials es presenten al sistema operatiu com un teclat USB HID, no com una classe USB pròpia. Alguns admeten modes alternatius, com el sèrie USB (emulació de port COM) o Bluetooth HID, però el mode d'emulació de teclat és el predeterminat en gairebé tots els escàners que es venen avui.
4. Entrada a l'aplicació
Com que l'escàner actua com un teclat, el sistema operatiu lliura la càrrega útil com una seqüència d'esdeveniments de tecla a l'aplicació que té el focus del teclat. L'aplicació no parla mai directament amb l'escàner: només rep pulsacions, exactament com si algú les hagués teclejat molt de pressa.
Per què la majoria d'escàners es comporten com teclats
El mode de teclat HID és la configuració predeterminada de gairebé tots els escàners comercials perquè no cal instal·lar cap controlador. Qualsevol sistema operatiu que admeti un teclat USB admet l'escàner des del primer moment.
L'emulació de teclat USB vol dir que el microprogramari de l'escàner assigna cada caràcter descodificat al codi de tecla HID USB que enviaria un teclat per a aquell caràcter i, tot seguit, transmet informes de teclat HID normals pel punt final d'interrupció USB.
Per què importa en les proves: com que a la capa d'aplicació l'escàner no es distingeix d'un teclat, podeu provar gran part del comportament guiat per l'escàner teclejant de pressa en un camp amb focus, o amb una eina del navegador que inspeccioni els esdeveniments de teclat (vegeu les eines enllaçades més avall).
Sufixos ENTER i TAB
La majoria d'escàners es configuren per afegir una pulsació de sufix després de la càrrega útil descodificada, gairebé sempre ENTER (retorn de carro, 0x0D), tot i que de vegades és TAB (0x09) o una seqüència personalitzada. Així l'aplicació receptora sap on acaba el valor llegit sense necessitat d'un temps d'espera: el sufix actua com a senyal d'enviament, igual que prémer Retorn després d'escriure en un camp de text.
Temporització de l'escàner
Un escàner transmet tota la càrrega útil d'un codi de barres en força menys d'un segon, sovint amb buits d'uns pocs mil·lisegons entre caràcters. Una persona que tecleja la mateixa cadena sol deixar buits de 100–300 ms o més entre pulsacions. Aquesta diferència de temps és la base de la «detecció d'escàner» en moltes aplicacions de POS i d'inventari, que vigilen ràfegues d'entrada inusualment ràpides seguides de seguida per una tecla de sufix.
Per a la vostra aplicació, això vol dir: si voleu distingir l'entrada de l'escàner de l'escriptura manual, mesureu el temps entre pulsacions en lloc de buscar una marca especial, perquè els esdeveniments de teclat habituals del navegador no indiquen l'origen de l'entrada.
Proveu-ho vosaltres mateixos
Feu servir el Provador d'entrada de codis de barres per llegir un codi real i veure a l'instant el valor capturat, la temporització i la detecció del sufix. Si voleu aprofundir en el comportament de la falca de teclat, continueu amb La falca de teclat HID explicada.