【问题标题】:Open cash drawer connected to a computer's rj11 port打开连接到计算机 rj11 端口的钱箱
【发布时间】:2012-10-28 22:17:05
【问题描述】:

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

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

提前致谢

【问题讨论】:

  • 你确定是 RJ11 吗?通常他们使用 RJ12(6 针连接器),它仅用于提供 +24V 脉冲以打开抽屉(未使用适当的串行协议)。 transact-tech.com/tsg/ithaca_8040_info_pinouts.html
  • 对,是rj12,我的错。无论如何,我需要知道如何将数据发送到这个“端口”。我不知道
  • 正如您在我发送的链接中看到的,此电缆上实际上没有串行协议,而是需要在其上发送 +24 脉冲。我猜你的打印机有一个可以发送这个脉冲的接口。我认为您不会在 PC 上找到可以做到这一点的东西。也许您可以将 +24 变压器连接到继电器并使用串行端口控制继电器。
  • 但是我看到软件打开了抽屉,这是直接连接到计算机的。中间没有变压器。无论如何,我会调查你的方式。谢谢
  • 您的计算机中是否有连接到 RJ12 的适配器?

标签: vb.net point-of-sale


【解决方案1】:

我在 VB.net 方面没有太多经验,但我在 Delphi 中与这些端口进行过交流,所以我知道的就是这些。

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

开启提现流程如下

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

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

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


来自 Tysso 5700 用户手册

钱箱控制器寄存器
寄存器位置:I/O口280h
尺寸:8 位
位 0~3、5~7:保留
Bit 4:钱箱“DIO OUTPUT”,引脚输出控制。 1:打开钱箱 0:关闭钱箱

【讨论】:

  • 这些天我一直在寻找答案,最大的问题是我不知道什么 IRQ 正在使用现金抽屉。终端附带一张 CD,但主板与我拥有的不完全匹配。我尝试过使用其他类似的主板和 的 dumport (winio.dll) 实用程序,但不起作用。我来看看 inpout32.dll
  • 故事的结局如何?
  • 买个usb钱箱
猜你喜欢
  • 1970-01-01
  • 2020-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 2014-02-09
  • 2019-02-18
相关资源
最近更新 更多