これを読んでくれてありがとう!
esc/pos コマンドを使用して、USB インターフェイスを介して EPSON TM-T88V レシート プリンターにバイトを送信するために Java アプリを使用しています。
ラズベリーパイで実行したときと、開発用ラップトップで実行したときの動作は異なります(これは非常に奇妙です!)
ラズベリーパイからバイトが出力されると、完了する前に停止します
コードは次のとおりです。
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();
}
私が調査したこと:
- 重い処理中にpiがUSBデバイスへの電力を失う可能性があることをjava8について読み、2Aを受け取るように電源をpiにアップグレードしました
- 開発マシンとpiからプリンターに送信されたバイトを比較してみましたが、それらは同一です(送信されたバイトと送信されたバイト数は同一です)
ラップトップから送信された esc/pos コマンドは期待どおりに機能するため、プリンターに送信したバイトに関する詳細情報を提供できます。
あなたのご親切に感謝します!