Отмените печать задания в Android с помощью UsbManager - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть проект на Android, который должен печатать текст в формате RAW (для поддержки команды ESC / P), используя класс UsbManager .Я сделал это, используя bulkTransfer , и код выглядит как this .И теперь я должен дать возможность отменить работу.Как я могу это сделать?

Я пытался искать, и почему-то нигде не мог его найти.И я новичок в Android тоже.Спасибо.

Редактировать:
Я использую принтер Tally T5040 и Epson PLQ-30.
Я попытался очистить буфер принтера, отправив 0x18 (ОТМЕНА ДАННЫХ) команда.Но все равно не повезло.

Редактировать 2:
Наконец я смог выполнить программный сброс принтера (очистить весь буфер) с помощью controlTransfer .Полная команда controlTransfer(0x21, 2, 0, 0, null, 0, 0).Я получил ссылки с этого сайта .Но проблема сейчас в том, что команда сброса работает только на Epson PLQ-30.

1 Ответ

0 голосов
/ 09 апреля 2019

В соответствии с определением класса устройства универсальной последовательной шины для печатающих устройств существует запрос для конкретного класса, который называется SOFT_RESET:

Этот запрос для конкретного класса сбрасывает все буферы и сбрасываетканалы Bulk OUT и Bulk IN в их состояния по умолчанию.Этот запрос очищает все условия сваливания.Этот сброс НЕ меняет адресацию USB или конфигурацию USB.

Так что вам просто нужно отправить запрос SOFT_RESET с помощью controlTransfer, код (Kotlin):

controlTransfer(0x21, 2, 0, 0, null, 0, 0)

Причинапочему мой другой принтер (Tally T5040) не работал, потому что прошивка не поддерживала запрос SOFT_RESET.Я уже связался с ними и получил обновление прошивки для поддержки SOFT_RESET.

В случае, если кто-то ищет ссылки о том, как печатать в Android с помощью USB (включая программный сброс, проверку состояния бумаги), вы можете проверить мой проект здесь .

...