2012-08-29 34 views
5

Tengo un escáner de código de barras 2d (Honeywell Xenon 1900).¿Cómo manejar los datos binarios devueltos desde el escáner de código de barras?

Escanear códigos de barras 1D es fácil, ya que el escáner emula los eventos del teclado y envía texto sin formato.

Pero cuando escaneo códigos de barras 2D PDF417 format, el escáner envía datos binarios. ¿Cómo puedo capturar y decodificar esta información? Algunos de los símbolos no son imprimibles, por lo que escanear a un formulario en una página web no funcionaría.

+3

Quizás publiques una muestra de respuesta? – BryanH

+1

tiene su respuesta en su publicación, solo mire el enlace más de cerca (ISO en wiki) –

+0

Según el artículo de Wikipedia, el código de barras puede contener datos binarios reales, por lo que tendría sentido que esta sea la salida, ¿no? ¿Qué sucede si genera su propio código de barras 2D con solo datos ASCII? ¿Recibes el texto del escáner? – BryanH

Respuesta

3

Mi solución para esta pregunta es mediante el puerto COM.

Configuro el escáner, por lo que envía datos no como eventos de teclado, sino en un puerto COM virtual. Luego tengo Java-applet, que escucha este puerto (usando RXTX). Entonces el puerto COM no está vacío, puedo obtener datos y analizarlos.

0

Has marcado este java así como también javascript. Sin embargo, realmente no nos ha dado ningún detalle de su aplicación. No obstante, tratar con el transporte de datos binarios en javascript se puede hacer utilizando el protocolo base64. Use dos métodos btoa() y atob().

function toBase64() { 
      return window.btoa(data); 
     } 
function fromBase64 (strBase64){ 
      data = window.atob(strBase64); 
     } 

Creo que el concepto de que, sin embargo, (y yo supongo, ya que no ha explicado lo que está haciendo en detalle), sería la de base64ENCODE los datos antes de su transporte a la aplicación javascript/html/web. Harás esto usando Java, supongo. Una vez que envíe los datos codificados en base64 a su aplicación web, puede manejarlos con bastante facilidad.

+0

Esta es una solución elegante y fácil de implementar. Pero no puedo encontrar la opción de configuración para que mi escáner utilice el formato BASE64. – griZZZly8

Cuestiones relacionadas