usb4java - 冲洗不起作用

usb4java - flush does not work

我正在使用 usb4java,我已经使用帮助页面 (http://usb4java.org/quickstart/javax-usb.html) 中描述的示例通过同步 I/O (pipe.syncSubmit) 在收据打印机上打印数据,每行以 LF (10) 结尾以刷新输出。

它适用于中国 58mm 型号,但当我连接到 Epson 80mm 打印机时,输出被随机剪切。大多数情况下最后一行都丢失了。

我想知道我是否需要做的不仅仅是发送 LF、关闭管道并释放 UsbInterface 以保证所有字节都传输到打印机。在这样的非大容量存储设备上是否有某种刷新操作或写缓存需要以某种方式停用?

尝试对最大 4 字节的块使用管道命令,例如

pipe.syncSubmit(new byte[] { 70, 71, 72, 73});
pipe.syncSubmit(new byte[] { 74, 75, 76, 10});

最后一个字节应该有 10 个换行符(将输出刷新到打印机)。

这对我有帮助(尽管 USB 设备宣布的数据包大小为 64)。不确定 usb4java 是否存在错误或任何其他问题。