【发布时间】:2019-10-01 10:50:20
【问题描述】:
我正在向库escpos-coffee添加一个方法,它返回热敏打印机的状态,即是否在线/离线,是否正在结束纸张或纸张已完成,或者钱箱是否打开/关闭。
我在 escpos-coffee 库中添加了一个方法“showPrinterStatus”,它基于ESC c 3 命令,它以字节形式将命令发送到打印机。该方法据说启用了卷纸即将用完传感器,以及卷纸用完传感器。此外,我添加了另一种方法“transmitStatus”,基于GS r 命令,它传输 n=1 和 n=49 的纸张传感器状态,以及 n=2 和 n=50 的现金抽屉状态。代码如下:
/**
*
* @param nSignal
* @return
* @throws IOException
* Method decides whether the printer should return an output paper-end signal to a parallel interface or not
* input 1,2 4,8 to enable, 0 to disable
*/
public EscPos showPrinterStatus(int nSignal) throws IOException {
write(27);
write('c');
write('3');
write(nSignal);
return this;
}
/**
*
* @param n
* @return
* @throws IOException
* returns the status of the printer, 1 or 49 returns paper sensor status, 2 or 50 returns drawer kick-out connector status
*/
public EscPos transmitStatus(int n) throws IOException{
write(29);
write('r');
return this;
}
我正在使用 Device Monitoring Studio,预计会有一些可见的通信。看起来 showPrinterStatus 方法正在向热敏打印机发送信号,但 transmitStatus 方法似乎根本没有引起任何通信。此外,如果我检查现金抽屉状态并让现金抽屉保持打开状态,则根本没有通信,请求只是排队。一旦我推回现金抽屉,打印机执行命令需要 5-10 分钟,而打印机一直在队列中。
在我的实现中是否有什么我忘记了,或者有没有比 Device Monitoring Studio 更好的方法来显示打印机状态?
【问题讨论】:
标签: java printing thermal-printer epson escpos