В настоящее время мы полностью выполнили печать чеков и в поле для приложения POS. Он работает в Windows, реализован на С# и использует POS для .Net.
У нас возникает проблема, когда кассиры слишком нетерпеливы и вытаскивают чек в течение секунды или около того, прежде чем он закончит откровение.
Если проверка вытягивается во время процесса печати, мы не можем заставить принтер прекратить принимать чеки. Светодиодный индикатор скольжения мигает и будет проверяться до тех пор, пока не будут успешно вызваны вызовы BeginRemoval() и EndRemoval(), которые не могут произойти, если вы не поместили чек-код, чтобы он снова плюнул.
Мне было интересно, есть ли способ отключить принтер от необходимости проверки, если проверка отсутствует. Я предполагаю, что есть только метод, который мы неправильно вызываем.
В частности, проблема заключается в том, что вы вызываете BeginInsertion() и EndInsertion(), оба успешно выполняются, и проверка удаляется до того, как приложение может вызвать BeginRemoval()/EndRemoval().
Есть ли у кого-нибудь рабочий пример в С#, С++, VB или любом другом языке? Мне нужен пример вставки проверки, печати, ожидающей удаления, которая правильно обрабатывает ошибки.
* UPDATE: я отправил эту проблему в 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
UPDATE 3: BOUNTY!
Комбинация следующего исправила проблему:
OPOS в целом может быть довольно немым, я рекомендую попробовать разные версии. Мы пробовали новейшую версию (версия 2.6), и это было хуже, но EPSON OPOS ADK 2.5 SP 10 кажется наиболее стабильным в нашей среде.
Если бы я был вами, я бы просто установил пластиковую крышку на принтер, чтобы они не могли быстро схватить чек.:)
Сколько программистов требуется, чтобы вкрутить лампочку?
Нет, это аппаратная проблема.
Мне нравится идея Спенсера о защите, чтобы предотвратить это - если аппаратное обеспечение не понимает эту проблему, вероятно, вы ничего не сможете сделать в программном обеспечении, чтобы исправить это. Вы отмечаете, что когда это происходит, вам нужно вставить чек, чтобы он мог отступить, сбросив машину. Там у вас есть проблема с обучением, и вам нужно много чеков, пустых листов бумаги.