Barcode Scanner Emulator
Emulazione tastiera HID spiegata
Il keyboard wedge è la modalità operativa predefinita della stragrande maggioranza dei lettori di codici a barre. Questa guida spiega che cos'è, come funziona a livello USB e cosa implica per i test della tua applicazione.
Che cos'è un keyboard wedge?
Il termine nasce da vecchi lettori su porta seriale che venivano letteralmente "incuneati" tra una tastiera e la porta del computer, intercettando il segnale della tastiera e iniettandovi i caratteri letti. I lettori moderni non hanno più bisogno di questo inserimento fisico: l'espressione indica oggi qualsiasi lettore che presenta i dati letti come se provenissero da una tastiera, a prescindere dal tipo di collegamento.
USB HID ed emulazione di tastiera
USB definisce una classe Human Interface Device (HID) specifica per tastiere, mouse e dispositivi di input simili. Quando un lettore si enumera su USB come tastiera HID, il sistema operativo carica il proprio driver tastiera generico integrato: non serve un driver specifico del lettore. Il firmware del lettore converte ogni carattere decodificato nel keycode HID che una tastiera fisica invierebbe, e i report vengono consegnati con lo stesso meccanismo di trasferimento a interrupt di qualsiasi tastiera USB.
Come la tua applicazione vede l'input del lettore
Raffica rapida di pressioni rispetto alla digitazione umana: il lettore invia l'intero payload come sequenza rapida di coppie keydown/keyup, di solito completandola in meno di un secondo indipendentemente dalla lunghezza del codice a barre.
Nessun evento mouse: i lettori in modalità tastiera HID non generano mai eventi di puntatore, clic o focus. Se il campo non ha il focus quando avviene la lettura, l'input va perso o finisce sull'elemento che ha il focus.
Nessun evento di incolla: poiché i dati arrivano come pressioni singole e non come operazione degli appunti, i gestori dell'evento paste non vedono l'input del lettore, e le maschere di input che ascoltano solo paste lo perdono in silenzio.
Problemi di layout di tastiera
Perché compaiono caratteri sbagliati: il lettore associa i caratteri decodificati a keycode HID usando il proprio layout di tastiera configurato. Se quel layout non coincide con il layout del sistema operativo, i caratteri possono essere scambiati. Un sintomo classico è che cifre o punteggiatura vengono lette come il carattere sbagliato tra sistemi QWERTY e AZERTY.
Disallineamento delle impostazioni locali: è un problema di configurazione lato lettore, non un bug software. La maggior parte dei lettori supporta il cambio delle impostazioni locali tramite codici a barre di configurazione stampati nel manuale, e la correzione consiste nel riprogrammare il lettore perché corrisponda alle impostazioni locali del sistema, non nel modificare il codice dell'applicazione.
Prefissi e suffissi
I lettori supportano di solito sequenze di prefisso e suffisso configurabili attorno al payload. I suffissi più comuni sono ENTER (CR, 0x0D), TAB (0x09) e talvolta una coppia CR+LF completa. I prefissi sono meno comuni, ma a volte servono a instradare le letture verso campi specifici in vecchie applicazioni terminale.
Limiti per i test nel browser
Un browser non vede i pacchetti USB HID grezzi, non può enumerare i dispositivi HID collegati come lettori in modo specifico (al di fuori dell'API WebHID, attraverso la quale la maggior parte dei lettori non espone i dati) e non può distinguere un lettore in modalità tastiera HID da una tastiera reale. A JavaScript sono accessibili solo gli eventi tastiera visibili al browser (keydown, keyup, keypress), ed è esattamente ciò che gli strumenti di questo sito ispezionano.
Correlati
Usa il tester degli eventi tastiera per ispezionare gli eventi tastiera grezzi, oppure leggi la guida Suffissi ENTER e TAB per i dettagli sulla configurazione del suffisso.