提前感谢您阅读本文!
我使用java应用程序使用esc / pos命令通过usb接口将字节发送到EPSON TM-T88V收据打印机
与在我的开发笔记本电脑上执行时相比,在覆盆子pi上执行时的行为是不同的(这是非常奇怪的!)
当从覆盆子pi打印字节时 - 它在完成之前停止
代码如下:
public void sendToPrinter(byte[] message) throws UsbException {
UsbDevice device = getPrinterDevice(); //find the usb using usb4java
UsbConfiguration configuration = device.getActiveUsbConfiguration();
UsbInterface iface = configuration.getUsbInterfaces().get(0); //There was only 1
if (!iface.isClaimed()) {
iface.claim(usbInterface -> true);
}
UsbEndpoint endpoint = (UsbEndpoint) iface.getUsbEndpoints().get(0);
UsbPipe pipe = endpoint.getUsbPipe();
pipe.open();
try {
LOG.info(Arrays.toString(message));
int sent = pipe.syncSubmit(message);
LOG.info("Bytes Sent: " + sent);
} finally {
pipe.close();
}
iface.release();
}
我调查过的事情:
我读到有关java8的信息,在重负载处理过程中,pi可能会失去USB设备的电源,我已将电源升级到pi,以便接收2A
我试过比较从我的开发机器和pi发送到打印机的字节,它们是相同的(发送的字节数和发送的字节数相同)
我可以提供有关我发送到打印机的字节的更多信息,虽然从我的笔记本电脑发送的esc / pos命令按预期工作,所以我不相信这可能是原因 - 但可能是错的!
再次感谢你的帮助!