2010-04-23 3 views
8

Ich suche nach einer Porto-Skala, die bereits Linux-Unterstützung (Treiber, usw.) für ein Versandsystem hat, an dem ich arbeite. Ich plane, Ubuntu 9.04 zu verwenden, aber ich bin bereit, Distributionen für Kompatibilität zu wechseln.Kennt jemand eine USB Portage Scale, die Linux kompatibel ist?

Kennt jemand irgendwelche Skalen, die derzeit funktionieren? Gibt es ein Open-Source-Projekt, das an Scale-Treibern oder ähnlichem arbeitet?

Danke!

Antwort

9

Ich benutze die 5lb stamps.com-Skala. Sie können es für $ 10 abholen, wenn Sie sich für ein Konto bei ihnen anmelden und es dann abbrechen.

von ihm in Linux zu lesen, erhalten Sie dieses Skript: http://gist.github.com/503896

Bearbeiten Sie die Skriptdatei des richtigen hidraw Gerätepfad zu setzen. Sie können den Pfad finden, indem Sie dmesg ausführen, nachdem Sie die Waage angeschlossen haben. Sie werden etwas wie "/ dev/hidraw2" sehen.

Nach dem hidraw Pfad im Skript einstellen, fügen Sie die Berechtigung ausführen und es dann als root ausführen:

chmod + x usbscale.pl

sudo ./usbscale.pl

Ein Objekt auf der Waage und es wird das Gewicht drucken.

+0

Danke für die Info! Wir sind bereits Kunden von stamps.com (es ist ihre API, die wir für unsere App verwenden). Aber die freie Skala, die wir (vor langer Zeit) haben, hat überhaupt keinen USB. Es muss eine neuere Skala sein, die USB-kompatibel ist. Ich könnte anrufen und sie fragen, ob sie uns die neuere Skala geben. 5 LBS wird das meiste liefern, was wir liefern. Wir müssen jedoch manchmal bis zu 30 LBS gehen. ABER danke für den Skript-Link, es ist ein guter Ausgangspunkt für mich zu ändern. – Nick

+0

Diese Stamps.com-Skala sieht so aus, als ob sie zu 25LBS geht. Ist es wie die, die Sie mit dem Skript arbeiten? http://customer.stamps.com/Store/catalog/sku.jsp?productId=prod22441145&id=SC00002510 – Nick

+1

Ich bin mir nicht sicher ... es sagte 5 Pfund auf der Website, als ich es bekam. Aber ich habe es definitiv verwendet, um Dinge zu wiegen, die mehr als 5 Pfund sind und es schien genau zu sein. – mattismyname

5

Update:

ich eine neuere Version meiner früheren Skript erstellt haben, die verknüpft mattismyname. Es ist in C geschrieben, und Sie es bei https://github.com/erjiang/usbscale

finden, es zu benutzen, laden Sie einfach den Quellcode und run (in seinem Verzeichnis):

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

Sie könnten die 50-usb-scales.rules auf Ihre /etc/udev/rules.d kopieren müssen (oder laufen Sie als root, haha), wenn Sie in einen Erlaubnisfehler laufen.

0

Der Exponentenwert wird als Ganzzahl mit Vorzeichen übergeben, und das Gewicht wird in Little-Endian-Byte-Reihenfolge übergeben. Andere Antworten do not properly account für diese Faktoren. 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"; 
    } 
}