【问题标题】:usb4java - flush does not workusb4java - 刷新不起作用
【发布时间】:2016-07-18 21:29:54
【问题描述】:

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

它适用于中国 58 毫米型号,但当我连接到爱普生 80 毫米打印机时,输出会随机剪切。大多数时候最后几行都不见了。

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

【问题讨论】:

    标签: caching usb buffer flush


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 2017-04-29
      相关资源
      最近更新 更多