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

Я использую термопринтер Citizen PD-24 и создаю приложение для печати счетов в android. Я выполнил большую часть кодирования, счет получился хорошо, все, что осталось, - это обработать неожиданные события во время печати. Согласно справочной документации по команде ESC / P, вы можете использовать команду Запросить состояние принтера (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, и это работает для них, но я не могу заставить его работать на меня. Любая помощь очень ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...