1

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

我使用 QFile 类来处理它,直接打开设备,例如 dev/usblp0 似乎没有带来任何结果,所以我打开已安装的设备,例如 dev/usb/lp0,我可以控制打印机,但是当我写“ \x10\x04\x01" 命令(实时传输状态)或任何其他暗示响应的命令我无法取回数据,使用 read() 或 readAll() 永远挂起阻塞进程,所以我如何接收数据? 如果我遗漏了一些基本的东西,请原谅我

4

1 回答 1

0

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

在 Linux 上,QSocketNotifier可与任何可poll(2)的文件描述符一起使用(因此它的命名不正确,因为您可以在非套接字文件描述符上使用它)

(在 Windows 上,情况完全不同)

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

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

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

于 2018-04-05T11:34:41.800 回答