我在android中有一个项目,需要使用UsbManager类打印原始文本(以支持ESC/P命令)。我使用bulkTransfer完成了它,代码看起来像这。现在我应该选择取消这份工作。我该怎么做呢?
我试着搜索,不知何故我哪儿也找不到。我也是机器人新手。谢谢。
编辑:
我使用的打印机是理货T5040和爱普生PLQ-30.
我尝试的是通过发送0x18 (取消数据)命令清除打印机缓冲区。但还是没有运气。
编辑2:
最后,我能够使用controlTransfer软重置打印机(清除所有缓冲区)。完整的命令是controlTransfer(0x21, 2, 0, 0, null, 0, 0)。我从本站那里得到了推荐信。但是现在的问题是重置命令只在爱普生PLQ-30上工作。
发布于 2019-04-09 11:47:04
根据印刷设备通用串行总线设备类定义,有一个名为SOFT_RESET的类特定请求:
这个特定于类的请求会刷新所有缓冲区,并将散列释放和散装在管道中重置到它们的默认状态。此请求清除所有失速条件。此重置不会更改USB地址或USB配置。
所以您只需要使用SOFT_RESET发送controlTransfer请求,代码是(Kotlin):
controlTransfer(0x21, 2, 0, 0, null, 0, 0)我的另一台打印机(Tally T5040)不能工作的原因是固件不支持SOFT_RESET请求。我已经联系了他们,并获得了固件的更新,以支持SOFT_RESET。
如果任何人寻找有关如何使用USB在Android中打印的参考资料(包括软重置,检查纸张状态),您可以检查我的项目这里。
https://stackoverflow.com/questions/54744952
复制相似问题