Um leitor que lê o código e não preenche o campo, um código que chega com um caractere trocado e um leitor que não lê o QR Code de uma receita digital têm explicações diferentes: o modo de conexão, a configuração do teclado e o tipo de leitor.
O leitor como teclado
A maior parte dos leitores USB funciona como um teclado. O código lido é digitado no campo que está com o foco, caractere por caractere, em geral seguido de um Enter. Por isso, o leitor não precisa de driver próprio e funciona em qualquer programa, inclusive no Bloco de Notas, que serve de teste.
Desse funcionamento vêm algumas falhas típicas:
- Campo sem foco: o código vai para outra janela ou se perde;
- Sem o Enter no fim: o código aparece no campo, mas o programa não avança, porque espera a confirmação;
- Layout de teclado diferente: o leitor configurado para o teclado de um país e o Windows configurado para outro trocam alguns caracteres, como letras e símbolos;
- Caps Lock ativo: as letras de um código alfanumérico podem chegar com a caixa invertida.
O Enter enviado no fim da leitura é chamado de sufixo, e os caracteres enviados antes do código formam o prefixo. Os dois são configurações do próprio leitor.
O leitor como porta serial
Alguns leitores funcionam também como uma porta COM, real ou virtual. Nesse modo, o código não é digitado: o programa precisa abrir a porta e ler os dados, e a leitura não aparece no Bloco de Notas. Um leitor que mudou de modo, por engano ou por uma reconfiguração, para de preencher os campos sem nenhuma mensagem de erro.
A configuração por códigos
Os leitores costumam ser configurados pela leitura de códigos de barras especiais, impressos no manual, que ligam ou desligam o modo de teclado, o sufixo, o layout de teclado e os tipos de código aceitos. Um código de configuração lido por engano muda o comportamento do leitor, e o manual traz também o código que restaura as configurações de fábrica.
Os tipos de código
Os códigos se dividem em dois grupos:
- Lineares: os códigos de barras comuns, como o EAN-13 das embalagens, o EAN-8 dos produtos pequenos e o Code 128;
- Bidimensionais: os códigos em matriz, como o QR Code e o DataMatrix, que guardam mais dados em pouco espaço.
Os leitores a laser e os leitores lineares leem só os códigos lineares e, em geral, não leem códigos exibidos na tela de um celular. Os leitores de imagem, chamados de leitores 2D, leem os dois grupos e também os códigos em telas. Um leitor pode ainda estar configurado para recusar um tipo de código, e o código de um tipo desligado não produz nenhuma leitura.
O EAN-13
O EAN-13 é o código das embalagens do varejo, com 13 dígitos. Os primeiros dígitos indicam a organização GS1 que atribuiu o código, como 789 e 790 no Brasil, e o último é o dígito verificador, calculado a partir dos 12 anteriores.
O cálculo multiplica os 12 primeiros dígitos, a partir da esquerda, alternadamente por 1 e por 3, soma os resultados e completa a soma até o múltiplo de 10 seguinte, e a diferença é o dígito verificador. No código 629104150021, por exemplo, a soma dá 57, e o dígito verificador é 3, o que forma o código 6291041500213.
O leitor confere o dígito verificador e descarta uma leitura com o dígito errado, o que protege contra leituras parciais ou borradas. Um código digitado à mão com um dígito trocado também falha nessa conferência, quando o programa a faz antes da busca no cadastro.
Quando o leitor não lê
As causas mais comuns de um código que não é lido são estas:
- Código danificado ou mal impresso: as barras estão borradas, riscadas ou sem a margem branca dos lados;
- Tipo desligado: o tipo de código não está habilitado no leitor;
- Leitor linear diante de um código 2D: o leitor não tem como ler o QR Code ou o DataMatrix;
- Código em tela: o leitor a laser não lê o código exibido em um celular.
No suporte
Diante de um leitor que não funciona no programa, convém fazer uma leitura no Bloco de Notas. O código que aparece completo, com a quebra de linha no fim, mostra que o leitor funciona no modo de teclado, e a falha fica no foco ou no programa. Um leitor que não digita nada no Bloco de Notas pode estar sem o tipo de código habilitado, no modo de porta serial ou com defeito.
Para guardar
- A maior parte dos leitores USB funciona como teclado e digita o código seguido de um Enter.
- O sufixo, o prefixo, o layout de teclado e os tipos de código são configurações do leitor.
- Um leitor no modo de porta serial só funciona com um programa que leia a porta.
- Os leitores lineares não leem códigos 2D, e os leitores de imagem leem os dois tipos e os códigos em telas.
- O último dígito do EAN-13 é o verificador, calculado a partir dos 12 anteriores.
O leitor do caixa 01 lê o código, o número aparece no campo, mas o programa não busca o produto. O que conferir?
O sufixo do leitor. Sem o Enter no fim da leitura, o código fica no campo, e o programa espera a confirmação para buscar o produto. O código de configuração do sufixo, no manual do leitor, ativa o Enter.
O leitor do balcão 01 lê os códigos das embalagens, mas não lê o QR Code das receitas digitais exibidas no celular dos clientes. O leitor está com defeito?
Não necessariamente. Um leitor a laser ou linear lê só os códigos lineares e não lê códigos em telas. O QR Code e a leitura em telas exigem um leitor de imagem, chamado de leitor 2D.