2015-05-15 3 views
0

Доброе утро,ESC/POS Ответ команды

Я разрабатываю приложение для киоска. В этом приложении мне нужно отправить некоторые команды на принтер с протоколом ESC/POS.

У меня есть некоторые команды, которые дают мне информацию о принтере (состояние принтера, состояние конца бумаги). Для отправки команды я использую this function, но мне также нужно прочитать ответ принтера. Как я могу это сделать? (Принтер подключен в режиме USB).

Я разрабатываю на Delphi XE2

Благодарности

+0

Похоже, что последний параметр [Escape] (https://msdn.microsoft.com/en-us/library/windows/desktop/dd162701%28v=vs.85%29.aspx) должен быть указателем на структура данных (нуль в связанном примере) для получения вывода. –

+0

@TOndrej спасибо, но я не так структурирован в delphi lpvOutData .. Я пробовал как TPassThroughData примера, но без успеха. – dvdan

+0

Добро пожаловать. Структура, вероятно, зависит от принтера и должна быть описана в ее документации. –

ответ

0

пример предполагает, что ваш тип строка просто, такие как shortstring. Попробуйте объявить s как shortstring. Он не может работать с widestring или unicode.

+0

процедура stampa (s: shortstring); тип TPassThroughData = запись nLen: целое; Данные: массив [0 .. 255] байта; конец; var PTBlock: TPassThroughData; PTReply: TPassThroughData; начало Printer.BeginDoc; PTBlock.nLen: = Длина (ы); StrPCopy (@ PTBlock.Data, s); Escape (Printer.Handle, PASSTHROUGH, 0, @PTBlock, @PTReply); Printer.EndDoc; конец; Что-то изменилось, но ничего не изменилось ... – dvdan

Смежные вопросы