Получить статус принтера ESC / POS, подключенного через USB в Linux с Qt Stack Overflow

У меня есть билетный принтер tg 2460 CUSTOM, который имеет эмуляцию ESC / POS, USB подключен в Debian Linux.
Я пытаюсь получить статус принтера в моей программе на qt c ++ с помощью команды, но без ответа.

Я использую класс QFile, чтобы справиться с ним, открывая устройство напрямую, например, dev / usblp0, кажется, не дает результатов, поэтому я открываю подключенное устройство, например, dev / usb / lp0, и я могу контролировать принтер в порядке, но когда я пишу » Команда \ x10 \ x04 \ x01 «(передача статуса в режиме реального времени) или любая другая команда, которая подразумевает ответ, который я не могу вернуть данные, с помощью read () или readAll () навсегда блокирует процесс, так как я могу получить данные ? прости меня, если я что-то упускаю

1

Решение

Вы, вероятно, хотите использовать QSocketNotifier, при условии, что вы работаете в Linux.

В Linux QSocketNotifier работает с любым Опрос (2)-в состоянии дескриптор файла (поэтому он как-то неправильно назван, так как вы можете использовать его в дескрипторах файлов без сокетов).

(В Windows все несовместимо)

Кстати, вы можете использовать CUPS в вашей системе POS. Вы можете запустить lp (или же lpr) команда для печати вещей (через некоторые трубы (7)), возможно, через QProcess. И вы будете использовать технологию HTTP -client side- (так Qt Network) запросить CUPS.

Читайте также о Поддержка Qt Print.

Рассмотрим также отладку не только с gdb но и с Трассирование (1).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]