我们目前已经完全实现了支票打印,并在现场为POS应用程序。它运行在Windows上,用C#实现,并使用.Net的POS机。
我们遇到了一个问题,出纳员太着急了,在支票盖完印花前一秒钟左右就把它拿出来了。
如果支票在打印过程中被拔出,我们无法让打印机停止接受支票。slip LED指示器闪烁并进行检查,直到成功调用了BeginRemoval()和EndRemoval(),这是不可能发生的,除非您对其进行签入,使其立即返回。
我想知道是否有一种方法可以禁止打印机在没有支票的情况下需要支票。我假设只有一个我们没有正确调用的方法。
具体地说,问题是如果调用BeginInsertion()和EndInsertion()都成功,并且在应用程序可以调用BeginRemoval()/EndRemoval()之前删除检查。
有没有用C#、C++、VB或其他语言写的例子?我需要一个插入支票,打印,等待删除的例子,正确处理错误。
*更新:我将这个问题转发给了爱普生,并要求提供一个示例应用程序。他们还没能生成一个,但向我指出了一个DirectIO()调用,该调用应该在TM-H6000系列上工作,以取消卡瓦插入。然而,我还没有让它工作。希望我们能弄清楚这一点并发布修复。
*更新2:爱普生回复了一些DirectIO()操作,这些操作可能会解决这个问题。但是,在尝试调用DirectIO()时,我总是得到ErrorCode.Illegal。谁有在遗留设备上使用DirectIO()的示例?
应该可以工作的代码:
_printer.DirectIO(121, 0, null); //121 is a constant for EPSON_DI_HARDWARE_RESET更新3:赏金!
发布于 2009-08-03 13:47:24
以下各项的组合修复了此问题:
一般来说,OPOS可能非常愚蠢,我建议尝试不同的版本。我们尝试了最新的版本(2.6版),情况更糟,但爱普生OPOS ADK 2.5 SP 10在我们的环境中似乎是最稳定的。
发布于 2009-07-16 20:57:49
如果我是你,我会在打印机上装一个塑料盖子,这样他们就不会那么快就拿到支票了。:)
发布于 2009-07-16 21:05:00
要多少个程序员才能拧进一个灯泡?
无,这是硬件问题。
我喜欢Spencer关于防止这种情况的守卫的想法--除非硬件理解这个问题,否则在软件中你可能无法修复它。你提到,当它真的发生时,你必须坚持签入,这样它就可以被吐出来,重新设置机器。在那里你有一个培训问题,并且需要大量支票大小的空白纸条。
https://stackoverflow.com/questions/1140222
复制相似问题