POS для печати чеков .Net - PullRequest
2 голосов
/ 17 июля 2009

В настоящее время у нас полностью реализована печать чеков в поле для POS-приложения. Он работает в Windows, реализован в C # и использует POS для .Net.

У нас возникла проблема, из-за которой кассиры слишком рвутся и вынимают чек примерно за секунду до того, как он закончит франкировать.

Если чек извлекается во время процесса печати, мы не можем заставить принтер перестать принимать чеки. Светодиодный индикатор скольжения мигает и будет принимать проверки до тех пор, пока вызовы BeginRemoval () и EndRemoval () не будут успешно вызваны, что не может произойти, если вы не установите проверку, чтобы он выплюнул обратно.

Мне было интересно, есть ли способ отключить принтер от необходимости чека, когда чека нет. Я предполагаю, что есть просто метод, который мы не вызываем правильно.

В частности, проблема заключается в том, что если вы вызываете BeginInsertion () и EndInsertion (), оба успешно выполняются, и проверка снимается, прежде чем приложение сможет вызвать BeginRemoval () / EndRemoval ().

У кого-нибудь есть рабочий пример на C #, C ++, VB или на каком-либо другом языке? Мне нужен пример вставки чека, печати, ожидания удаления, который правильно обрабатывает ошибки.

* ОБНОВЛЕНИЕ: я переправил эту проблему в Epson и попросил привести пример приложения. Они не смогли его создать, но указали мне на вызов DirectIO (), который предположительно работает на серии TM-H6000 для отмены вставки. Я не получил это работать, однако. Надеюсь, мы разберемся с этим и опубликуем исправление.

* ОБНОВЛЕНИЕ 2: Epson ответила некоторыми операциями DirectIO (), которые предположительно устранят проблему. Тем не менее, я продолжаю получать ErrorCode.Illegal при попытке вызвать DirectIO (). У кого-нибудь есть пример использования DirectIO (), который работает на устаревшем устройстве?

Код, который должен работать:

_printer.DirectIO(121, 0, null); //121 is a constant for EPSON_DI_HARDWARE_RESET

ОБНОВЛЕНИЕ 3: BOUNTY!

Ответы [ 3 ]

1 голос
/ 03 августа 2009

Сочетание следующего исправило проблему:

  • Улучшенные экранные подсказки и анимации для пользователя (а также улучшенное обучение)
  • Обнаружено, что в этом магазине была более старая версия OPOS (мы обновили их)
  • Мы удалили транзакционную печать из процесса печати чеков (хотя мы все еще используем ее в квитанциях)

OPOS в целом может быть довольно глупым, я рекомендую попробовать разные версии. Мы попробовали новейшую версию (версия 2.6), и она оказалась хуже, но EPSON OPOS ADK 2.5 SP 10 кажется самой стабильной в нашей среде.

0 голосов
/ 17 июля 2009

Сколько программистов нужно, чтобы вкрутить лампочку?

Нет, это аппаратная проблема.

Мне нравится идея Спенсера о защите, чтобы предотвратить это - если аппаратное обеспечение не понимает эту проблему, вероятно, вы ничего не можете сделать в программном обеспечении, чтобы исправить ее. Вы упоминаете, что когда это происходит, вы должны поставить чек, чтобы его можно было выплюнуть и перезагрузить машину. Там у вас есть проблема с обучением, и вам нужно много пустых листов бумаги размером с чек.

0 голосов
/ 17 июля 2009

На вашем месте я бы просто установил пластиковую крышку на принтер, чтобы они не могли быстро получить чек. :)

...