我正在寻找已经为我正在处理的运输系统提供linux支持(驱动程序等)的邮资规模。我打算使用Ubuntu 9.04,但我愿意为了兼容性而改变发行版。
有人知道目前有哪些尺度吗?是否有一个开源项目正在使用规模驱动程序或类似的?
谢谢!
答案 0 :(得分:9)
我使用5lb stamps.com量表。如果您注册一个帐户然后取消它,您可以以10美元的价格购买它。
要在linux中读取它,请获取此脚本:http://gist.github.com/503896
编辑脚本文件以设置正确的hidraw设备路径。插入比例尺后,您可以通过运行dmesg
找到路径。您将看到类似“/ dev / hidraw2”的内容。
在脚本中设置hidraw路径后,添加执行权限,然后以root身份运行:
chmod + x usbscale.pl
sudo ./usbscale.pl
在秤上放置一个物体,它将打印重物。
答案 1 :(得分:5)
<强>更新强>
我创建了我之前脚本的较新版本,即mattismyname链接。它是用C语言编写的,你可以在https://github.com/erjiang/usbscale
找到它要使用它,只需下载源代码并运行(在其目录中):
sudo aptitude install libusb-1.0-0-dev
make
./usbscale
如果您遇到权限错误,可能需要将50-usb-scales.rules
复制到/etc/udev/rules.d
(或运行为root
,哈哈)。
答案 2 :(得分:0)
指数值作为有符号整数传递,权重以小端字节顺序传递。其他答案do not properly account表示这些因素。 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";
}
}