2010-04-23 7 views
8

Estoy buscando una escala de franqueo que ya tenga compatibilidad con Linux (controladores, etc.) para un sistema de envío en el que estoy trabajando. Estoy planeando usar Ubuntu 9.04, pero estoy dispuesto a cambiar la distribución por compatibilidad.¿Alguien sabe de una escala de franqueo USB que sea compatible con Linux?

¿Alguien sabe de alguna balanza que funcione actualmente? ¿Hay algún proyecto de código abierto que funcione con controladores de báscula o similar?

Gracias!

Respuesta

9

Uso la escala de 5lb stamps.com. Puedes recogerlo por $ 10 si te registras para una cuenta con ellos y luego lo cancelas.

Para leer de él en Linux, conseguir este script: http://gist.github.com/503896

Editar el archivo de secuencia de comandos para establecer la ruta correcta dispositivo hidraw. Puede encontrar la ruta ejecutando dmesg después de enchufar la báscula. Verá algo como "/ dev/hidraw2".

Después de establecer la ruta hidraw en el guión, añadir el permiso de ejecución y luego ejecutarlo como root:

chmod + x usbscale.pl

sudo ./usbscale.pl

Coloque un objeto en la báscula e imprimirá el peso.

+0

¡Gracias por la información! Ya somos clientes de stamps.com (es su API que estamos utilizando para nuestra aplicación). PERO la escala libre que tenemos (hace mucho tiempo) no tiene USB en absoluto. Debe ser una balanza más nueva que sea compatible con USB. Podría llamar y preguntarles si nos darán la escala más nueva. 5 LBS hará la mayor parte de lo que enviamos. Sin embargo, necesitamos subir a 30 LBS. PERO gracias por el enlace del script, es un buen punto de partida para modificar. – Nick

+0

Esta escala de Stamps.com parece que va a 25LBS. ¿Es como el que tienes que funciona con el guión? http://customer.stamps.com/Store/catalog/sku.jsp?productId=prod22441145&id=SC00002510 – Nick

+1

No estoy seguro ... dijo 5 libras en el sitio web cuando lo obtuve. Pero definitivamente lo he usado para pesar cosas que pesan más de 5 libras y me pareció preciso. – mattismyname

5

Actualización:

He creado una nueva versión de mi guión anterior que mattismyname vinculado. Está escrito en C, y se puede encontrar en https://github.com/erjiang/usbscale

Para usarlo, sólo tiene que descargar el código fuente y ejecutar (dentro de su directorio):

sudo aptitude install libusb-1.0-0-dev 
make 
./usbscale 

puede que tenga que copiar el 50-usb-scales.rules a su /etc/udev/rules.d (o ejecute como root, jaja) si se encuentra con un error de permisos.

0

El valor de exponente se pasa como entero con signo, y el peso se pasa en orden de bytes endian pequeño. Otras respuestas do not properly account para estos factores. See a more comprehensive example here.

<?php 
$binary = fread(fopen('/dev/hidraw3', 'r'), 7); 
$data = (object) unpack('Creport/Cstatus/Cunit/cexponent/vweight', $binary); 

if ($data->report == 0x03 && $data->status == 0x04) { 
    $data->weight = $data->weight * pow(10, $data->exponent); 
    if ($data->unit == 0x0B) { 
     // convert ounces to grams 
     $data->weight *= 28.349523125; 
     // and unit to grams 
     $data->unit = 0x02; 
    } 

    if ($data->unit == 0x02) { 
     echo "{$data->weight} g\n"; 
    } else { 
     echo "{$data->weight} in other unit\n"; 
    } 
} 
Cuestiones relacionadas