Prefissi, suffissi e comandi

Ritardo tra caratteri: quando il lettore è troppo veloce per il computer

Il ritardo tra caratteri (inter-character delay) è una pausa che il lettore inserisce tra un tasto e l'altro quando "digita" il codice. Serve quando l'applicazione o la connessione non riescono a stare al passo: caratteri persi, cifre in disordine, Invio che arriva prima della fine del codice. Parti da pochi millisecondi e aumenta solo finché il problema sparisce.

I sintomi che indicano un problema di velocità

Sintomo e probabilità che sia un problema di velocità
SintomoÈ la velocità?Indizio decisivo
Mancano caratteri a caso, ogni volta in posizioni diverseMolto probabileRileggendo lo stesso codice il risultato cambia
Cifre in ordine sbagliato (8001243567897)Molto probabileSuccede in sessioni remote o con Bluetooth
La ricerca parte con un codice incompletoProbabileL'Invio arriva prima che l'app abbia elaborato le cifre
Manca sempre lo stesso carattereImprobabileÈ layout o formattazione, vedi caratteri sbagliati
Il codice compare due volteNoVedi ritardo stesso codice nelle modalità di scansione
Simboli diversi da quelli stampatiNoLayout di tastiera, vedi tastiera italiana

Il test del lettore mostra anche il tempo tra un carattere e l'altro: se nel test il codice arriva sempre completo e nell'applicazione no, il collo di bottiglia è l'applicazione. Una diagnosi più ampia è in caratteri mancanti o letture doppie.

Perché un lettore può essere troppo veloce

In emulazione tastiera il lettore invia ogni carattere come pressione e rilascio di un tasto, molto più rapidamente di qualsiasi persona. Nella maggior parte dei casi va benissimo. I problemi nascono quando c'è un passaggio intermedio:

  • Applicazioni web pesanti che eseguono codice a ogni tasto (ricerche istantanee, validazioni): vedi lettore in applicazioni web.
  • Desktop remoto, Citrix, macchine virtuali: i tasti attraversano la rete e possono arrivare raggruppati o in ritardo.
  • Bluetooth con interferenze o alla periferia della portata: vedi autonomia e portata wireless.
  • Modalità ALT, che genera 4 o 5 eventi per ogni carattere: vedi modalità ALT.
  • PC lenti o sotto carico, terminali di cassa datati, software scritti per input umano.

I tipi di ritardo che puoi trovare

Ritardi configurabili (nomi tipici, variano tra produttori)
RitardoDove agisceQuando usarlo
Tra caratteri (inter-character / intercharacter delay)Dopo ogni carattereCaratteri persi o invertiti
Prima di un carattere specifico o di un tasto funzioneSolo prima del suffisso, del Tab o di un tasto funzioneL'Invio arriva troppo presto; il Tab sposta il focus prima che il campo sia pronto
Tra messaggi (inter-message / inter-scan delay)Tra una lettura e la successivaModalità multi-codice o lettura molto rapida di più codici
Velocità di trasmissione USB (keystroke rate, polling)Su tutto il flussoAlcuni modelli permettono di scegliere tra velocità "veloce", "normale", "lenta"

Il ritardo mirato prima del suffisso è spesso la scelta migliore: risolve il caso "ricerca con codice incompleto" senza rallentare tutta la digitazione.

Come impostarlo senza rallentare tutto

  1. Riproduci il problema con lo stesso codice, nella stessa applicazione, almeno dieci volte, e annota quante letture falliscono.
  2. Prova prima il ritardo mirato sul suffisso, se il tuo lettore lo offre e il sintomo è l'Invio anticipato.
  3. Altrimenti imposta il ritardo tra caratteri partendo da un valore basso (pochi millisecondi). Nella maggior parte dei manuali si imposta con un codice di funzione seguito dal valore dalla tabella numerica, oppure scegliendo tra valori predefiniti. Vedi codici di programmazione.
  4. Ripeti il test e aumenta a piccoli passi solo se il problema persiste.
  5. Fermati al primo valore stabile. Il tempo totale è il ritardo moltiplicato per il numero di caratteri: su un codice di 13 cifre con suffisso un ritardo di 10 ms aggiunge circa 0,14 secondi, su un Data Matrix di 60 caratteri oltre mezzo secondo.

Se sei in una sessione remota, prova prima le impostazioni del client remoto (per esempio come vengono inoltrati i tasti). A volte risolvono senza toccare il lettore.

Quanto costa in tempo

Tempo aggiunto per lettura (ritardo x numero di caratteri)
CodiceCaratteri (con suffisso)Ritardo 5 msRitardo 20 ms
EAN-13140,07 s0,28 s
Code 128 interno100,05 s0,20 s
GS1 DataMatrix farmacocirca 400,20 s0,80 s
QR con URL lungocirca 800,40 s1,60 s

Il calcolo è indicativo: il ritardo si somma al tempo di trasmissione del lettore. Con i codici 2D lunghi un ritardo eccessivo diventa evidente, e se l'operatore legge il codice successivo prima che il precedente sia finito i dati possono mescolarsi.

Alternative al ritardo

  • Porta COM virtuale: il software riceve il messaggio intero in un'unica soluzione. Vedi USB HID o porta COM virtuale.
  • Applicazione adattata: un'app web può raccogliere tutti i caratteri e agire solo all'arrivo del suffisso, invece di reagire a ogni tasto.
  • Connessione più stabile: cavo o base 2.4 GHz invece del Bluetooth in ambienti disturbati.

Caso tipico: un gestionale in cloud usato via browser cerca l'articolo a ogni tasto premuto. Con il lettore la ricerca parte a volte con 11 cifre su 13 e mostra "articolo non trovato". Un ritardo breve solo prima dell'Invio elimina l'errore senza rallentare in modo percepibile la lettura.

Domande frequenti

Il ritardo serve anche in modalità COM?

Raramente: lì il controllo di flusso e i buffer della porta gestiscono la velocità. Si usa quasi solo in emulazione tastiera.

Un lettore economico senza questa opzione: cosa posso fare?

Prova a cambiare la velocità di trasmissione USB se esiste, a togliere la modalità ALT, o a usare la connessione via cavo. Altrimenti il problema va risolto nell'applicazione.

Il ritardo può causare letture doppie?

Non direttamente, ma se la trasmissione dura molto l'operatore tende a rileggere pensando che non abbia funzionato. Tieni il valore il più basso possibile.

Fonti e riferimenti

  • Product Reference Guide dei produttori, sezioni "Intercharacter Delay", "Interfunction Delay" e "Intermessage Delay": Honeywell, Zebra, Datalogic, Newland.
  • USB Device Class Definition for HID (USB Implementers Forum).

Altro in Prefissi, suffissi e comandi

Tutta la sezione Prefissi, suffissi e comandi