我正在寻找一个可以在 USB 秤上读取重量的程序,即 Pelouze 10lb USB 便携式秤。我以为它会有一个虚拟 COM 端口驱动程序,但它使用 HID 驱动程序。我一直在寻找一个可以帮助我将秤的读数转移到 Microsoft Excel 的程序整整一个月。有人可以帮助我或指出我正确的方向吗?我对编程一窍不通。非常感谢任何帮助。
9 回答
我可以提供一些有用的链接。
秤使用“HID 销售点”USB 规范,可以在我在下面提到的博客文章的评论部分找到该链接。我会直接链接,但垃圾邮件预防机制阻止了我。
有一篇关于从 C# 解决 25lb 版本规模的博客文章,这里: http: //nicholas.piasecki.name/blog/2008/11/reading-a-stamps-com-usb-scale-from-c-sharp /
该帖子的评论很有帮助 - 您可以在其中找到USB 规范,还有一条评论显示如何在不使用完整 HID 库的情况下获取数据。
祝你的项目好运!
我编写了一些代码来使用 Python 从 Dymo USB 秤中读取数据。它需要 libusb 和 PyUSB。
这段代码很笼统;它应该适用于任何只有一种配置的 HID 设备:
import usb.core
import usb.util
VENDOR_ID = 0x0922
PRODUCT_ID = 0x8003
# find the USB device
device = usb.core.find(idVendor=VENDOR_ID,
idProduct=PRODUCT_ID)
# use the first/default configuration
device.set_configuration()
# first endpoint
endpoint = device[0][(0,0)][0]
# read a data packet
attempts = 10
data = None
while data is None and attempts > 0:
try:
data = device.read(endpoint.bEndpointAddress,
endpoint.wMaxPacketSize)
except usb.core.USBError as e:
data = None
if e.args == ('Operation timed out',):
attempts -= 1
continue
print data
对于我使用的 DYMO M10 秤,数据包是这样的 6 元素数组array('B', [3, 2, 11, 255, 0, 0])
。
最后两个元素用于计算权重。
在公斤模式grams = data[4] + (256 * data[5])
和磅/盎司模式下ounces = 0.1 * (data[4] + (256 * data[5]))
。
更多信息见我的博文。
Elane 销售一系列 USB HID 秤,还有一个用于读取重量的 Windows 程序。不幸的是,由于 Stamps.com,该程序不再免费。15.50 美元,我不一定想盲目尝试,但这里是: http ://www.elane.net/index.php?go=USB_pcsoftware
您需要回答的第一个问题是 HID 的确切用途。USB 描述了一系列相关协议。USB HID 是一个子集,但这仍然涵盖了大量设备。HID 规范定义了一个 32 位的“使用”标识符,支持多达 40 亿种不同类型的 HID 设备,尽管到目前为止只分配了一小部分值。
您可能需要的 Windows API 是Raw Input。不幸的是,这不是编程文盲的接口。
对于操作系统不直接支持的 USB 设备,您要么需要是程序员,要么需要设备供应商提供的程序。在这种情况下,听起来您不是程序员,您应该联系制造商,看看他们是否可以提供任何可用于读取和捕获秤数据的诊断或测试软件程序。如果幸运的话,这样的程序可以“批处理”并重定向输出,或者类似的东西。祝你好运。
如果你想扮演侦探这个人的建议可能会有所帮助:
http://nicholas.piasecki.name/blog/2008/11/reading-a-stamps-com-usb-scale-from-c-sharp/
我自己刚订购了一个 DYMO 秤,所以会发布调查结果
我编写了我的 nodejs 版本并在https://github.com/PhantomRay/dymo-scale-nodejs上共享了代码。
它仅在 Windows 10 中进行了测试。此外,它内置了一个简单的 Web 套接字服务器模式,因此任何网页都可以连接到它以读取数据。
http://r.lagserv.net/scalereader.htm
这是开始使用 C# 和使用 HidLibrary 的 Dymo 规模的好代码。
只需更改供应商 ID 以匹配您的规模。
您可以在几分钟内启动并运行。
我将它与 Dymo S400 一起使用。
我会假设像这样的 USB HID 设备的输出应该在 USB 主机上显示出来,就好像输入是在键盘上输入的一样,即在秤稳定时,重量将通过 USB 发送。这是大多数 USB 条码扫描器的工作方式。
如果是这种情况,那么秤应该在重量上触发,它会出现在任何活动的应用程序中;如果您希望输入结束,请使用 Excel。
但是,我已经查看了您指定的比例的规格和手册,除非我看的是错误的型号,虽然它是由 USB 供电的,但我没有看到任何提及它也通过 USB 进行通信的事实. 你有网址或零件号吗?