三脉/usb-scale-reader

标准USB称重读数库

资助包维护!
sanmai

v1.0.2 2021-01-06 05:16 UTC

This package is auto-updated.

Last update: 2024-09-06 13:41:00 UTC


README

Latest Stable Version

这个库允许您使用纯PHP从标准USB称重中读取重量。

如果其他语言有unpack()函数,则可以轻松移植到其他语言

测试过以下设备

  • Stamps.com 不锈钢 5 磅 数字秤
  • DYMO M25 25 磅 数字邮政秤

如果您想快速了解其工作原理,请参阅read_stupid.phpusbscale.c

用法

composer require sanmai/usb-scale-reader

然后

$reader = \USBScaleReader\Reader::fromDevice('/dev/scale');
$weightInGrams = $reader->getWeight();
var_dump($reader, $weightInGrams);

示例输出

class USBScaleReader\Reader#2 (5) {
  public $report =>
  int(3)
  public $status =>
  int(4)
  public $unit =>
  int(2)
  public $exponent =>
  int(0)
  public $weight =>
  int(144)
}
int(144)

udev 规则

添加到/etc/udev/rules.d/80-persistent-scale.rules

KERNEL=="hidraw*", ATTRS{manufacturer}=="Maker Name", SYMLINK+="scale"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="plugdev"

制造商名称为Stamps.comDYMO

然后重新连接您的秤。

有关其他制造商的信息,请参阅

udevadm info -a -p  $(udevadm info -q path -n /dev/hidrawN)

这些规则意味着您应该具有plugdev权限才能使脚本正常工作。

C版本

还有一个用C编写的简单读取程序

要构建它并针对PHP实现运行测试

cd example
make test

使用方法尽可能简单

./usbscale /dev/hidraw3

输出类似以下内容

70.87 g