Como diferenciar os dados do scanner de código de barras da entrada normal do teclado?

2

Estou ansioso para comprar um scanner de código de barras para um projeto. Este projeto é um aplicativo da Web executado como um servidor da Web no computador local e um navegador na mesma máquina para o lado do cliente. O leitor de código de barras seria anexado a essa máquina.

Parece que muitos scanners de código de barras USB emulam um teclado, no entanto, gostaria de diferenciar a entrada de teclado regular dos dados do scanner de código de barras. Como eu poderia conseguir isso?

Obtendo os dados do código de barras no lado do servidor

Uma configuração interessante para mim seria simplesmente buscar os dados do scanner de código de barras do meu aplicativo (acho que isso pode ser feito lendo /dev/input/by-path/pci-XXX-usb-XXX-kbd ) e desabilitar esse dispositivo no Xorg (já que o arquivo /etc/X11/Xorg.conf é principalmente ignorada em versões recentes do ubuntu, não sei como fazer isso).

Note que eu gostaria de, se possível, interceptar a entrada do leitor de código de barras enquanto meu aplicativo não tem foco (é o servidor de uma aplicação web, então não é nem mesmo um aplicativo Xorg), então eu preciso evitar Xorg de enviar os eventos para o aplicativo focado.

Obtendo os dados do código de barras no lado do cliente

Caso contrário, eu poderia mapear um layout de teclado falso no scanner de código de barras (por exemplo, mapear os dígitos para obscurecer os caracteres utf-8), mas manter o layout regular do teclado, usando esta técnica detalhada em Super User . Então eu saberia quando o scanner de código de barras é usado porque eu iria receber dígitos estranhos no lado do cliente (uma página da web).

    
por Georges Dupéron 01.02.2013 / 23:21

0 respostas