三脉 / usb-scale-reader
标准USB称重读数库
v1.0.2
2021-01-06 05:16 UTC
Requires
- php: >=7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.13
- phpunit/phpunit: ^6.5 || ^7.4 || ^9
This package is auto-updated.
Last update: 2024-09-06 13:41:00 UTC
README
这个库允许您使用纯PHP从标准USB称重中读取重量。
如果其他语言有unpack()
函数,则可以轻松移植到其他语言
测试过以下设备
- Stamps.com 不锈钢 5 磅 数字秤
- DYMO M25 25 磅 数字邮政秤
如果您想快速了解其工作原理,请参阅read_stupid.php或usbscale.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.com
或DYMO
。
然后重新连接您的秤。
有关其他制造商的信息,请参阅
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