Barcode Scanner Emulator
Disposição de teclado errada no leitor de códigos de barras
Caracteres errados ou baralhados após uma leitura, sobretudo algarismos, pontuação e símbolos, são quase sempre um desajuste de disposição do teclado entre o leitor e o sistema operativo, não um erro de descodificação.
Problema
O valor lido contém caracteres errados, muitas vezes símbolos ou algarismos concretos trocados por outros (um padrão habitual: os números surgem certos, mas símbolos como -, / ou . estão errados, ou surge uma letra completamente diferente no lugar da esperada).
Porque isto acontece
Como se explica em A cunha de teclado HID explicada, um leitor em modo de teclado HID converte cada carácter descodificado num código de tecla segundo a disposição de teclado configurada internamente e depois transmite esse código. O sistema operativo volta a interpretar o código com a sua própria disposição. Se as duas disposições não coincidirem (por exemplo o leitor em QWERTY dos EUA e o sistema em AZERTY francês), certas teclas correspondem a caracteres diferentes e o desajuste aparece como saída errada, mesmo tendo o leitor descodificado o código na perfeição.
Como diagnosticar
- Leia um código com uma gama completa de algarismos e símbolos habituais no testador de eventos de teclado.
- Compare o valor
keyregistado com o conteúdo real do código. Se caracteres específicos forem sempre substituídos por outros caracteres específicos, isso é um forte indício de desajuste de locale, e não de um erro aleatório de descodificação. - Verifique a disposição do teclado do sistema operativo (Idioma e região na maioria dos sistemas) e compare-a com o locale configurado no leitor, indicado no manual de configuração ou no utilitário do fornecedor.
Como corrigir
Reconfigure a disposição do teclado do leitor para coincidir com a disposição do sistema da máquina à qual está ligado, usando a folha de códigos de configuração do fabricante ou o utilitário de configuração. A correção é do lado do leitor. Alterar a disposição do sistema em seu lugar raramente é prático, porque afeta todos os outros dispositivos de introdução dessa máquina.
Se gere muitos postos com locales de sistema diferentes, uniformize um locale de leitor e um locale de sistema sempre que possível, para não ter de configurar o leitor posto a posto.
Como verificar
Leia de novo o mesmo código de teste no testador de eventos de teclado e confirme que cada carácter, sobretudo os símbolos, passa a coincidir exatamente com o conteúdo esperado do código.
Relacionado
A cunha de teclado HID explicada · Guia de configuração do leitor de códigos de barras