Salta al contingut

Barcode Scanner Emulator

La falca de teclat HID explicada

La falca de teclat és el mode de funcionament predeterminat de la immensa majoria d'escàners de codis de barres. Aquesta guia explica què és, com funciona a nivell d'USB i què implica en provar l'aplicació.

Què és una falca de teclat?

El terme ve dels escàners antics de port sèrie que es «falcaven» literalment entre el teclat i el port de l'ordinador, interceptaven el senyal del teclat i hi injectaven els caràcters llegits. Els escàners actuals ja no necessiten una falca física: l'expressió designa qualsevol escàner que presenta les dades llegides com si vinguessin d'un teclat, sigui quin sigui el tipus de connexió.

USB HID i emulació de teclat

L'USB defineix una classe Human Interface Device (HID) pensada per a teclats, ratolins i dispositius d'entrada semblants. Quan un escàner s'enumera a l'USB com a teclat HID, el sistema operatiu carrega el controlador de teclat genèric integrat: no cal un controlador específic de l'escàner. El microprogramari converteix cada caràcter descodificat en el codi de tecla HID que enviaria un teclat físic, i els informes es lliuren pel mateix mecanisme de transferència per interrupció que fa servir qualsevol teclat USB.

Com veu l'aplicació l'entrada de l'escàner

Ràfega ràpida de pulsacions enfront de l'escriptura humana: l'escàner envia tota la càrrega útil com una seqüència ràpida de parells keydown/keyup i sol acabar en menys d'un segon, independentment de la llargada del codi.

Sense esdeveniments de ratolí: els escàners en mode de teclat HID no generen mai esdeveniments de punter, clic o focus. Si el camp no té el focus quan es fa la lectura, l'entrada es perd o va a l'element que sí que el té.

Sense esdeveniments d'enganxar: com que les dades arriben com a pulsacions individuals i no com una operació del porta-retalls, els gestors de l'esdeveniment paste no veuran l'entrada de l'escàner, i les màscares d'entrada que només escolten paste la passaran per alt en silenci.

Problemes de distribució del teclat

Per què apareixen caràcters incorrectes: l'escàner assigna els caràcters descodificats a codis de tecla HID segons la seva pròpia distribució de teclat configurada. Si aquesta distribució no coincideix amb la del sistema operatiu, els caràcters es poden transposar. Un símptoma clàssic és que els dígits o la puntuació es llegeixin com un altre caràcter en sistemes QWERTY enfront d'AZERTY.

Desajust de la configuració regional: és un problema de configuració de l'escàner, no un error del programari. La majoria d'escàners permeten canviar la configuració regional mitjançant codis de configuració impresos al manual, i corregir-ho consisteix a reprogramar l'escàner perquè coincideixi amb la configuració regional del sistema operatiu, no a canviar el codi de l'aplicació.

Prefixos i sufixos

Els escàners solen admetre seqüències configurables de prefix i sufix al voltant de la càrrega útil. Els sufixos més habituals són ENTER (CR, 0x0D), TAB (0x09) i, de vegades, un parell CR+LF complet. Els prefixos són menys freqüents, però de vegades es fan servir per dirigir les lectures a camps concrets en aplicacions de terminal antigues.

Limitacions de les proves al navegador

Un navegador no pot veure els paquets USB HID en brut, no pot enumerar els dispositius HID connectats com un escàner en concret (tret de l'API WebHID, per la qual la majoria d'escàners no exposen dades) i no pot distingir un escàner en mode de teclat HID d'un teclat real. Només els esdeveniments de teclat visibles per al navegador (keydown, keyup, keypress) són accessibles des de JavaScript, i això és exactament el que inspeccionen les eines d'aquest lloc.

Relacionat

Feu servir el Provador d'esdeveniments de teclat per inspeccionar els esdeveniments de teclat en brut, o llegiu la guia Sufixos ENTER i TAB per als detalls de configuració del sufix.