NDemia Новости CashMatic Рубли Форум

TICKET


Команда TICKET выполняет операции с выходным чеком (проверить наличие, втянуть, вытолкнуть), команда применима при наличии в принтере соответствующих механизмов удержания/перемещения напечатанного чека (т.н. презентер, ретрактор, ejector и т.п.).

Совместимость: команда поддерживается в NDemia CashMatic, начиная с версии 2.6.0.


TICKET <respfile> [subcommand]
<respfile> - имя файла ответа, в ResponseDir;
Ответ записывается в файл, первая строка может иметь одно из перечисленных значений:
    0 OK ;операция выполнена с положительным результатом (на второй строке двузначное 16-ричное число, комбинация флагов состояния рулона, полученных по команде STATUS_ROLL (см. комментарии входящих в комплект программного продукта файлов PrinterCommands*.txt): 1 - сработал датчик приближения конца бумаги, 2 - сработал датчик отсутствия рулона, ноль означает нормальное состояние или неизвестное состояние.
    2 OFFLINE ;нет связи с принтером, или принтер не работает (диагностика на второй строке, двузначное 16-ричное число, равно статусу принтера, полученному по команде STATUS_PRINT (см. комментарии входящих в комплект программного продукта файлов PrinterCommands*.txt), ноль означает невозможность получения статуса, например, из-за ошибки связи)
      Нулевой код диагностики OFFLINE означает отсутствие принтера (по крайней мере, ошибку связи с принтером или ошибку настройки подключения).
      Ненулевой код диагностики OFFLINE соответствует возвращённому принтером коду состояния, интерпретация значения зависит от модели принтера.
      В любом случае, с точки зрения интерфейса приёма платежей, 2 OFFLINE означает неисправность принтера, не связанную с отсутствием бумаги.
    3 NO PAPER
      В принтере кончилась бумага.
      Для отладки клиентских приложений можно "спровоцировать" результат 3 NO PAPER - см. CONFIG PrinterSimulateNoPaper (если задать ненулевое значение PrinterSimulateNoPaper, то любой вызов PRINTOUT будет завершаться с результатом 3 NO PAPER)
    4 CANCEL - отменено - либо нет чека на выходе, либо при определении наличия чека отключен опрос принтера, либо не настроена система команда принтера, либо файловый режим принтера (см. вкладку Принтер в Панели управления NDemia CashMatic). Вторая строка ответа формируется так же, как для ответа 0 OK.
    пустой ответ (команда завершилась, но не вернула файл ответа или вернула пустой файл ответа) - команда не поддерживается в данной версии службы NDemia CashMatic Kiosk.
<subcommand> - PRESENT (по умолчанию), EJECT или RETRACT.
      PRESENT - проверка наличия выходного чека;
      EJECT - вытолкнуть чек;
      RETRACT - втянуть чек.
    возвращаемый результат (<respfile>) во всех случаях имеет одинаковый синтаксис.
    если все команды настроены, но отключен опрос принтера, то TICKET <respfile> PRESENT вернёт отрициательный результат, а TICKET <respfile> EJECT и TICKET <respfile> RETRACT выполнятся с положительным результатом ("0 OK").
    если все команды настроены и опрос принтера работает, а чек на выходе презентера отсутствует, то TICKET <respfile> EJECT и TICKET <respfile> RETRACT будут завершаться отрицательно ("4 CANCEL"), без подачи сооттветствующих команд принтеру.



Программа TICKET.EXE представляет собой безоконный (не консольный и не скрыто-оконный) процесс операционной системы, результат выполнения записывается в текстовый файл под указанным именем в пути ResponseDir (конфигурируемый параметр службы NDemia CashMatic Kiosk, настраивается командой CONFIG).
Служба NDemia CashMatic Kiosk должна работать на момент вызова TICKET.

Служба открывает файлы ответов и файлы данных в режиме FILE_SHARE_DELETE, что позволяет вызывающей программе перед вызовом службы создать файл с флагом FILE_FLAG_DELETE_ON_CLOSE (см. документацию по Windows API, функция CreateFile), и в дальнейшем не заботиться об удалении этого файла - операционная система автоматически удалит его даже при сбоях работы программного обеспечения.

Вызывающее приложение может узнать о готовности ответа по завершению процесса TICKET.EXE.
тел. +7-(916)-129-26-84 (C)opyright: NDemia Ltd, Москва, 2006..2024 ndemia@ndemia.com