Barcode Scanner Emulator
Sufixos ENTER e TAB em leitores de código de barras
Sufixo é o pressionamento de tecla que o leitor envia logo depois da carga decodificada do código de barras. Escolher o sufixo certo e tratá-lo corretamente no app é uma das fontes mais comuns de bugs de integração com leitores.
O que são sufixos e por que os leitores os enviam
Como o leitor emite a carga como pressionamentos brutos, sem um delimitador embutido, o aplicativo receptor não tem um jeito confiável de saber que a leitura terminou, a menos que o leitor acrescente um pressionamento explícito de término. Esse terminador é o sufixo. Sem ele, os aplicativos precisariam adivinhar o fim por um tempo de inatividade, o que é mais lento e menos confiável.
ENTER (CR)
O sufixo mais comum. Enviado como a tecla Enter/Return, correspondente ao retorno de carro, 0x0D em ASCII. Na maioria dos formulários HTML, pressionar Enter dentro de um único campo de texto envia o formulário que o contém, então ENTER combina naturalmente com fluxos de "ler e enviar", como uma caixa de busca ou uma consulta de um só campo.
TAB
Enviado como a tecla Tab, 0x09. Em vez de enviar o formulário, Tab move o foco para o próximo elemento focalizável. Esse sufixo é preferível em entrada de dados em várias etapas, como ler o código do produto → avançar sozinho para o campo de quantidade → ler o próximo item, sem disparar um envio cedo demais.
Pares CR/LF e nenhum sufixo
Alguns leitores podem ser configurados para enviar um par CR+LF completo (comum ao alimentar aplicativos de terminal ou estilo serial), e alguns podem ficar sem sufixo nenhum. Nesse caso o aplicativo precisa detectar o fim da leitura pelo tempo da entrada.
Por que isso importa para POS e apps web
O sufixo errado produz bugs bem específicos e confusos: um sufixo ENTER num formulário de vários campos pode enviar o formulário antes de quantidade ou desconto serem preenchidos, enquanto um sufixo TAB num fluxo de uma única caixa de busca deixa a busca sem executar, porque nada dispara o envio. Casar o sufixo com o fluxo, em vez de deixar o padrão de fábrica, é essencial.
Como testar o comportamento do sufixo
Leia no testador de entrada de código de barras, que informa explicitamente se ENTER ou TAB foi detectado no fim da leitura. Se você precisar ver os códigos de tecla exatos (por exemplo para distinguir CR de LF), use o testador de eventos de teclado.
Mudar o sufixo no leitor
O comportamento do sufixo é um ajuste do próprio leitor, feito pelo utilitário do fabricante ou pela leitura de um código de configuração especial impresso no manual. Veja o guia Configuração do leitor de código de barras para o processo geral.