1

我有一个用 VB.Net 制作的软件,它打开了一个连接到收据打印机的钱箱。前几天出现问题,打印机型号变了,我必须将钱箱连接到计算机的 rj11 端口。我对这个端口一无所知,这不是 COM 端口,也不是调制解调器。

以前有人遇到过这个问题吗?

提前致谢

4

1 回答 1

0

我对 VB.net 没有太多经验,但我已经在 Delphi 中与这些端口进行了通信,所以这就是我所知道的。

这些端口通常的工作方式是它们具有固定的 IRQ 位置,这些在制造商手册中有详细说明

开通提现流程如下

  1. 获取端口的内存(IRQ)(这应该在制造商的手册中详细说明)
  2. 从端口获取当前的 8 位(短)值(这样我们就不会弄乱那里的设置)
  3. 使用 OR 打开或关闭相关位(1 或 0)以打开,AND 关闭以打开平局
  4. 等待一秒钟以打开抽奖(否则该位将在抽奖有时间响应之前被翻转)
  5. 使用 OR 打开或关闭相关位(1 或 0)打开,AND 关闭以重新接合抽屉上的锁定销(否则当他们关闭时,抽屉将再次弹开)*

    • 注意:您不只是将值设置回您最初获得的值,因为如果程序在将其翻转回锁定之前崩溃,您无法在不重新启动的情况下锁定抽奖,因此在原件上使用 AND 或 OR value 将确保 1 为 0 或相反。

最大的问题是在 Windows 中访问这些端口有点痛苦,因为现在大多数命令都受到限制(即被归类为特权指令),但是那里有 3rd 方 DLL 可以绕过它(例如Inpout32.dll)。 dll ) - 虽然 VB.net 可能没有这个限制。


来自 Tysso 5700 用户手册

Cash Drawer Controller Register
Register Location: I/O port 280h
Size: 8 bit
Bit 0~3, 5~7: Reserved
Bit 4: Cash Drawer “DIO OUTPUT”,引脚输出控制。1:打开钱箱 0:关闭钱箱

于 2012-11-12T14:03:07.573 回答