1

我正在尝试将 USPS 邮资秤与 C# 应用程序集成,但我没有运气。我实际上有 2 个秤,一个是 Mettler Toledo PS60,另一个是 USPS PS-100 ( http://www.measurement-ltd.com/ps-100-det.html )。MT 规模与 Mike O'Brien 的 HidLibrary ( https://github.com/mikeobrien/HidLibrary ) 配合得非常好。但是,USPS 量表没有(请注意,这不是 Stamps.com 量表,它似乎与 HidLibrary 一起使用)。我知道秤正在工作,因为我从 USPS 下载了 Postage Metering 软件,并且该软件可以很好地读取秤。

我还下载了一个 USB 分析仪,当没有其他应用程序与之通信时,它显示没有从秤返回,这表明它不是不断地发送数据并且需要轮询。我通过启动 USPS Postal Meter 软件进一步证实了这一点,分析仪开始显示进出设备的数据。但是,这些数据对我没有任何意义,我也没有运气尝试在自己的应用程序中复制它。

例如,秤上的包装正好为 1 磅,分析仪显示它收到一个 8 字节的十六进制响应,如下所示:07 54 04 00 FF FF 00 00。秤上没有任何东西,它显示:07 00 00 00 FF FF 00 00。这表明第 2 和第 3 个字节以某种方式表示 1 磅,但我无法破解代码。看起来获取比例数据的轮询命令是 90 DE 80 00 00 00 00 00 (从分析仪中看到),但是从我的应用程序中这似乎对我不起作用。

所以我想我有2个问题。首先,我无法让体重秤跟我说话。唯一的方法是计量应用程序是否正在运行。所以我需要弄清楚这一点。其次,即使我确实获得了数据,也没有任何意义。

有没有人有这方面的经验或者可以指出我正确的方向?

谢谢!

4

1 回答 1

1

我经历了同样的事情,最后让这些秤正常工作。这是我发现的有关该消息的信息。

SM WW WW 00 FF 00 00

  • S => 符号(+ 或 -)。0 是 +,8 是 -
  • M => 模式。1: 克, 7: lb oz /, 3 lb oz., 2: oz
  • WWWW => 以克为单位的重量(75 磅秤的公斤)和 little-endian base 16。

(请注意,仅使用前 3 个字节)

以你的例子:07 54 04 00 FF FF 00 00

+0454 克 = 1 磅 0/0 盎司


它是一个 HID 设备,要获取此中断消息,您需要设置一个 Feature (weight) 90 de 80 00 00 00 00 00

要初始化设备,您需要设置此功能 a0 de a0 00 00 00 00 00

这是我使用的 DLL http://msdn.microsoft.com/en-us/library/windows/hardware/ff539684%28v=vs.85%29.aspx


协议序列示例

App to Scale(初始化模式)
--> a0 de a0 00 00 00 00 00

(等待 1 秒进行秤初始化和去皮)

App to Scale (get weight)
--> 90 de 80 00 00 00 00 00

扩展到应用程序(中断)
<-- 07 54 04 00 ff ff 00 00

App to Scale (get weight)
--> 90 de 80 00 00 00 00 00

扩展到应用程序(中断)
<-- 07 54 04 00 ff ff 00 00

ETC

于 2014-11-17T17:06:35.513 回答