【问题标题】:How to open RJ11 cash drawer in c#如何在c#中打开RJ11钱箱
【发布时间】:2020-11-30 03:18:38
【问题描述】:

我有一个现金抽屉(型号 = PSHOP CD4141)和 POS PC(Posbank Apexa G)。我可以在打印收据之后或之前通过 XPrinter Q900 打开钱箱(打印机设置中有一个选项)。但我需要在没有打印机的情况下打开抽屉。 POS PC 上有 RJ11 端口。我试过这段代码:

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.PointOfService;

namespace POS
{
    public class CashDrawerClass
    {
        CashDrawer myCashDrawer;
        PosExplorer explorer;

        public CashDrawerClass()
        {
            explorer = new PosExplorer(this);
            DeviceInfo ObjDevicesInfo = explorer.GetDevice("CashDrawer");
            myCashDrawer = explorer.CreateInstance(ObjDevicesInfo);
        }

        public void OpenCashDrawer()
        {
            myCashDrawer.Open();
            myCashDrawer.Claim(1000);
            myCashDrawer.DeviceEnabled = true;
            myCashDrawer.OpenDrawer();
            myCashDrawer.DeviceEnabled = false;
            myCashDrawer.Release();
            myCashDrawer.Close();
        }
    }
}

但它不起作用。谁能建议我如何在没有打印机的情况下打开现金抽屉?

【问题讨论】:

  • 根据the manual的第5-6页,似乎RJ11连接器是用于VFD的COM4,而CashDrawer是用于选择性替换为COM5的RJ45连接器。而且似乎需要选择工厂选项才能将其用于CashDrawer。发货后不能选择吗?

标签: c# serial-port pos


【解决方案1】:

我找到了答案。正如@kunif 所说,Apexa G 与 COM5 端口上的现金抽屉通信。我只需要简单的 Write() 命令。以下代码有效:

string port = "COM5";    
using (SerialPort serialPort = new SerialPort(port))
{
     serialPort.Close();
     serialPort.Open();
     serialPort.Write("\x001B@\x001Bp\0.}");
     serialPort.Close();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-28
    • 2019-02-18
    • 1970-01-01
    • 2022-12-04
    • 2018-11-06
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多