我使用的是usb4java,并且我使用了帮助页面(http://usb4java.org/quickstart/javax-usb.html)中描述的示例,通过同步I/O (pipe.syncSubmit)在收据打印机上打印数据,每一行都以LF (10)结束以刷新输出。
它在中国的58 is型号上效果很好,但当我连接到爱普生80 is打印机时,输出是随机剪切的。大多数情况下,最后一行都会丢失。
我想知道我是否需要做的不仅仅是发送LF,关闭管道并释放UsbInterface,以保证所有字节都传输到打印机。是否有某种类型的刷新操作,或在这样的非海量存储设备上的写缓存,我需要以某种方式停用?
发布于 2016-07-26 22:59:23
尝试使用最大为4字节的块的管道命令,例如
pipe.syncSubmit(new byte[] { 70, 71, 72, 73});
pipe.syncSubmit(new byte[] { 74, 75, 76, 10});作为最后一个字节,换行符应该是10 (将输出刷新到打印机)。
这对我很有帮助(尽管USB设备宣布的数据包大小是64)。不确定usb4java中是否存在错误或任何其他问题。
https://stackoverflow.com/questions/38446310
复制相似问题