В настоящее время у нас полностью реализована печать чеков в поле для 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!