开启钱箱(CashDrawer)核心代码

[b]这里的代码只是POS驱动中的一部份[/b]

private static void openDrawer(String portName, PosPrinter pp/*这是POS机的配置*/)
throws Exception {
CommPortIdentifier port = null;
CommPort open = null;
try {
port = CommPortIdentifier.getPortIdentifier(portName);
open = port.open(portName, 100);
open.setInputBufferSize(32);
open.setOutputBufferSize(32);
OutputStream outputStream = open.getOutputStream();
//设置开启钱箱的脉冲频率,一般不用设置,默认就行
if (pp.getPc().hasDrawerConfig()) {
if (pp.getPc().getDrawerRate() == 2400) {
outputStream.write(EpsonPosPrinterCommand.ESC_DRAWER_RATE_2400);
} else {
outputStream.write(EpsonPosPrinterCommand.ESC_DRAWER_RATE_9600);
}
int ontime = pp.getPc().getDrawerOntime();
int offtime = pp.getPc().getDrawerOfftime();
outputStream.write(EpsonPosPrinterCommand
.generatePulse(ontime, offtime));
outputStream.write(EpsonPosPrinterCommand.ESC_OPEN_DRAWER);
} else {//默认设置
outputStream.write(EpsonPosPrinterCommand.ESC_DRAWER_RATE_9600);
int ontime = 50;
int offtime = 50;
outputStream.write(EpsonPosPrinterCommand.generatePulse(ontime, offtime));
outputStream.write(EpsonPosPrinterCommand.ESC_OPEN_DRAWER);
}
outputStream.flush();
java.util.concurrent.TimeUnit.SECONDS.sleep(1);
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
if (e instanceof IOException
&& e.getMessage()
.startsWith("Resource temporarily unavailable")) {
} else {
throw e;
}
} finally {
if (port != null && port.isCurrentlyOwned()) {
open.close();
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值