我正在创建一个POS应用程序。我从POS打印机开始工作。之后,我增加了“打开现金抽屉”的功能。但不知何故干扰了POS打印机。
那么到底发生了什么?
当我只要求一台POS打印机时,打印就可以了。另外,当我只要求一个现金抽屉,抽屉打开罚款。所以这里没问题。
但是当我同时要求打印(POS打印机和抽屉)时,打印就会卡住或结冰。抽屉还开得很好。大多数情况下,当我声称两者都存在时,第一张照片看上去很好,但它并没有割断纸张。当我再次打印程序冻结。
不知何故,我不能同时使用这两个对象:
OPOSPrinter oposprinter = new OPOSPrinter(); // Has the Windows.Devices.PointOfService.PosPrinter class
OposCashDrawer oposcashdrawer = new OposCashDrawer(); // Has the Windows.Devices.PointOfService.CashDrawer class当我声明ClaimedCashDrawer时,这一行给了ClaimedPrinter = await CurrentPrinter.ClaimPrinterAsync();一个null。
我在这里上传了一个示例项目:https://github.com/hellyeahniels/TestPrintAndDrawer
能不能有人给我解释一下是怎么回事,怎么解决?
提前谢谢。
发布于 2022-02-03 06:55:17
它由两个因素组成。
这种配置被称为水龙头装置。
有些打印机供应商有一个规范,允许打印机和现金抽屉独立操作,即使在这样的配置下也是如此。
如果您从该供应商切换到打印机,或者将缓存抽屉切换到独立工作的打印机,而不是通过打印机,您就不必小心了。
如果您想按原样使用它,则似乎在打印机供应商提供的OPOS服务对象的说明中描述了它的用法,因此请遵循它。
可能,打印机和缓存抽屉不能同时使用,如果使用它们,则独占控制权由索赔方法获得,完成后,独占控制权由发布方法释放。
顺便说一下,您使用的API似乎是Windows.Devices.PointOfService,而不是POS for.NET。
请更正问题的描述和标签的内容以适合您。
如果是的话,将我提供的方法名称替换为适当的名称。
https://stackoverflow.com/questions/70957756
复制相似问题