我正在尝试将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下载了邮资计量软件,并且读取的规模很好。
我还下载了一个USB分析仪,当没有其他应用程序与它通话时,它没有显示任何从规模返回的内容,因此这表明它不是经常发送数据而需要进行轮询。我通过启动USPS Postal Meter软件进一步证实了这一点,并且分析仪开始向设备显示数据/从设备显示数据。但是,这些数据对我来说没有任何意义,也没有任何运气试图在我自己的应用程序中复制它。
例如,在秤上有一个精确的1lb软件包,分析仪显示它接收到一个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个问题。首先,我无法与我交谈。唯一的方法是计量应用程序正在运行。所以我需要弄明白。其次,即使我获得数据,也没有任何意义。
有没有人有这方面的经验或者能指出我正确的方向?
谢谢!
答案 0 :(得分:1)
我经历了同样的事情,终于让这些尺度起作用了。以下是我发现的有关该消息的内容。
SM WW WW 00 FF 00 00
(请注意,只使用前3个字节)
用你的例子: 07 54 04 00 FF FF 00 00
+0454克= 1磅0/0盎司
这是一个HID设备,要获取此中断消息,您需要设置一个功能(重量) 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
(等待1s进行刻度初始化和去皮)
App to Scale(获得重量)
- > 90 de 80 00 00 00 00 00
缩放到App(中断)
< - 07 54 04 00 ff ff 00 00
App to Scale(获得重量)
- > 90 de 80 00 00 00 00 00
缩放到App(中断)
< - 07 54 04 00 ff ff 00 00
等