获取使用 Qt c++ 在 Linux 中通过 USB 连接的 ESC/POS 打印机的状态

Get status of ESC/POS printer connected throughout USB in linux with Qt c++

本文关键字:连接 USB ESC 状态 打印机 POS Qt c++ Linux 获取      更新时间:2023-10-16

我有一台 tg 2460 自定义票据打印机,它有 ESC/POS 仿真,USB 连接在 debian Linux 中。我正在尝试使用命令在我的qt c ++程序中获取打印机的状态,但没有响应。

我使用 QFile 类来处理它,直接打开设备,例如 dev/usblp0 似乎没有带来任何结果,所以我打开挂载的设备,例如 dev/usb/lp0,我能够控制打印机OK,但是当我编写"\x10\x04\x01"命令(实时传输状态(或任何其他暗示响应的命令时,我无法取回数据, 使用 read(( 或 readAll(( 会永远挂起,从而阻止进程,那么如何接收数据呢?如果我错过了一些基本的东西,请原谅我

你可能想使用QSocketNotifier,假设你在Linux上。

在 Linux 上,QSocketNotifier 适用于任何支持 poll(2( 的文件描述符(因此它的名称不正确,因为您可以在非套接字文件描述符上使用它(。

(在Windows上,事情是不兼容的(

顺便说一句,您可能想在POS系统上使用CUPS。然后你可以运行一些lp(或lpr(命令来打印东西(通过一些管道(7((,也许通过QProcess。你将使用HTTP技术-客户端-(所以Qt Network(来查询CUPS的。

另请阅读有关Qt打印支持的信息。

还要考虑不仅使用 gdb 进行调试,还使用 strace(1( 进行调试。