为什么我的现金抽屉不会出现在.net的pos设备列表中?

时间:2015-10-08 14:55:11

标签: .net c#

我正在尝试编写概念验证应用程序(以便我理解代码),演示如何打印到我的收据打印机并打开现金抽屉。

打印机正在从软件中获得完美的打印作业,但我对现金抽屉没有运气。所以我打印了一个设备列表:

+Device
    Device Hardware Id : 
    Device Hardware Description : 
    Device Hardware Path : 
    +Logical Names
    -Logical Names
    Service Object Name : Microsoft Msr Simulator
    Service Object Version : 1.14.1.0
-Device
+Device
    Device Hardware Id : 
    Device Hardware Description : 
    Device Hardware Path : 
    +Logical Names
    -Logical Names
    Service Object Name : Microsoft Keylock Simulator
    Service Object Version : 1.14.1.0
-Device
+Device
    Device Hardware Id : 
    Device Hardware Description : 
    Device Hardware Path : 
    +Logical Names
    -Logical Names
    Service Object Name : Microsoft Scanner Simulator
    Service Object Version : 1.14.1.0
-Device
+Device
    Device Hardware Id : 
    Device Hardware Description : 
    Device Hardware Path : 
    +Logical Names
    -Logical Names
    Service Object Name : Microsoft CashDrawer Simulator
    Service Object Version : 1.14.1.0
-Device
+Device
    Device Hardware Id : 
    Device Hardware Description : 
    Device Hardware Path : 
    +Logical Names
    -Logical Names
    Service Object Name : Microsoft CheckScanner Simulator
    Service Object Version : 1.14.1.0
-Device
+Device
    Device Hardware Id : 
    Device Hardware Description : 
    Device Hardware Path : 
    +Logical Names
    -Logical Names
    Service Object Name : Microsoft LineDisplay Simulator
    Service Object Version : 1.14.1.0
-Device
+Device
    Device Hardware Id : 
    Device Hardware Description : 
    Device Hardware Path : 
    +Logical Names
    -Logical Names
    Service Object Name : Microsoft PinPad Simulator
    Service Object Version : 1.14.1.0
-Device
+Device
    Device Hardware Id : 
    Device Hardware Description : 
    Device Hardware Path : 
    +Logical Names
    -Logical Names
    Service Object Name : Microsoft PosPrinter Simulator
    Service Object Version : 1.14.1.0
-Device
+Device
    Device Hardware Id : 
    Device Hardware Description : 
    Device Hardware Path : 
    +Logical Names
    -Logical Names
    Service Object Name : Microsoft PosKeyboard Simulator
    Service Object Version : 1.14.1.0
-Device
+Device
    Device Hardware Id : 
    Device Hardware Description : 
    Device Hardware Path : 
    +Logical Names
    -Logical Names
    Service Object Name : Example Scanner
    Service Object Version : 1.14.1.0
-Device
+Device
    Device Hardware Id : 
    Device Hardware Description : 
    Device Hardware Path : 
    +Logical Names
    -Logical Names
    Service Object Name : ExampleMsr
    Service Object Version : 1.14.1.0
-Device
+Device
    Device Hardware Id : 
    Device Hardware Description : 
    Device Hardware Path : 
    +Logical Names
        rp-600 printer
    -Logical Names
    Service Object Name : RP-600_USB
    Service Object Version : 0.0
-Device

大多数是用于.NET模拟器等的POS,但RP-600_USB设备是我的打印机。我的现金抽屉根本没有出现在列表中。

现金抽屉通过RJ11连接器连接到打印机。打印机通过USB连接到电脑 - 那么现金抽屉在哪里?为什么不出现在任何地方?

2 个答案:

答案 0 :(得分:3)

通过RJ11连接器连接到打印机的现金抽屉不会像您看到打印机或扫描仪那样显示为“设备”。

在您的代码中,对现金抽屉的引用可能是针对独立于打印机的USB现金抽屉。

您将向打印机发送打印作业,说明“打开现金抽屉”。取决于型号打印机以及哪个界面将决定您需要的代码。

List of Open Drawer Codes

有一个列表,但最好的情况是找到打印机的手册,告诉你使用了哪些代码。

当现金抽屉关闭时,它已锁定并准备打开。它只是等待来自打印机的脉冲释放杠杆,将“纸币托盘”靠在弹簧上。

每个现金抽屉的电缆可以不同,但​​通常使用4根电线。 24伏,抽屉打开,开/关信号,接地。如果您使用12V抽屉,24V可以是12V。如果您使用的是标准热敏打印机(例如Epson TM88),那些打印机使用24V电源,并且只打开24V抽屉。 12V抽屉通常连接到POS(销售点)站,车站由12V而不是24V供电。

我现在在前面的POS程序,使用此代码发送到打印机打开抽屉。

27,112,0,50,200,256,256,256,256,256

许多热敏打印机都使用epson接口。明星& Citizen打印机确实使用自己的界面,但大多数打印机都有设置将其更改为Epson界面。我之前使用过RP-600,并且非常自信他们默认使用了Epson接口。

并非所有Epson代码都适用于打印机,但通常是基本命令: 切纸 打印条形码 打开抽屉......

这样的事情会起作用。

TLDR;

要打开现金抽屉,请将打印作业发送到打印机。打印机将该作业视为“开放式现金抽屉”作业,并将信号发送到现金抽屉。

希望有所帮助。

答案 1 :(得分:0)

如果您使用合作伙伴技术的here中的OPOS Utility设置,您可以设置OPOS打印机和现金抽屉,并为其提供逻辑设备名称。然后,您可以使用Microsoft POS Library执行简单的操作

        DeviceInfo myDevice;
        CashDrawer _myCashDrawer;
        PosExplorer posExplorer = new PosExplorer();
        myDevice = posExplorer.GetDevice("CashDrawer", "Drawer Logical Name Given");

        _myCashDrawer = (CashDrawer)posExplorer.CreateInstance(myDevice);

        _myCashDrawer.Open();
        _myCashDrawer.Claim(1000);
        _myCashDrawer.DeviceEnabled = true;
        _myCashDrawer.OpenDrawer();
        _myCashDrawer.DeviceEnabled = false;
        _myCashDrawer.Release();
        _myCashDrawer.Close();

,因此您无需使用特定代码打开抽屉并为其添加其他代码。每个制造商都有自己的OPOS Utility Setup,所有过程都完全相同。不幸的是,我还没有找到一个普遍的"实用程序,因为每个人只识别自己的品牌打印机。