Получение статуса термопринтера (с помощью команд ESC/P) во время печати

Я использую термопринтер Citizen PD-24 и делаю приложение для печати счетов в android. Я выполнил большую часть кода, счет оформляется красиво, остается только обрабатывать неожиданные события во время печати. Согласно справочной документации по командам ESC/P, вы можете использовать команду Request printer status (0x1B 0x69 0x53), чтобы получить текущий статус принтера, включая ошибки, если они есть, но даже если я отправлю эти байты на принтер (используя гнездо bluetooth, кстати) я все еще не могу ничего прочитать из входного потока.

Вот упрощенный пример того, что я делаю:

socket = device.createRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"));
inputStream = socket.getInputStream();
outputStream = socket.getOutputStream();

outputStream.write(0x1B);
outputStream.write(0x69);
outputStream.write(0x53);

byte[] status = new byte[inputStream.available()];
inputStream.read(status);

Статус должен быть 32 байта, который содержит статус принтера, но входной поток всегда пуст. Я нашел примеры на других языках для других принтеров, использующих USB, и это работает для них, но я не могу заставить его работать для меня. Буду признателен за любую оказанную помощь.

0 ответов

Другие вопросы по тегам