首页 / 专利库 / 电脑零配件 / 计算机系统 / 软件 / 票据打印方法及其装置

票据打印方法及其装置

阅读:0发布:2021-05-27

专利汇可以提供票据打印方法及其装置专利检索,专利查询,专利分析的服务。并且本 申请 公开了票据打印方法方法及其装置,涉及 打印机 技术领域,其中方法包括:打印机服务层根据接收到的打印 请求 得到打印任务,并将所述打印任务分配给对应的打印机 虚拟层 ;所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测,得到所述打印机物理层是否可用的监测结果;根据所述监测结果,控制所述打印机物理层打印所述打印任务中的待打印票据。通过本申请的技术方案,能够在多种具有餐饮功能的 软件 同时请求票据打印服务导致打印失败的技术问题,有效避免打印端口被抢占,导致打印任务失败甚至造成死 锁 (例如,程序卡死)的情况,提升用户体验。,下面是票据打印方法及其装置专利的具体信息内容。

1.一种票据打印方法,其特征在于,包括:
打印机服务层根据接收到的打印请求得到打印任务,并将所述打印任务分配给对应的打印机虚拟层
所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测,得到所述打印机物理层是否可用的监测结果;
根据所述监测结果,控制所述打印机物理层打印所述打印任务中的待打印票据。
2.根据权利要求1所述的方法,其特征在于,所述打印机服务层根据接收到的打印请求得到打印任务,将所述打印任务分配给对应的打印机虚拟层,具体包括:
打印机服务层根据接收到的打印请求,生成包含打印机类型信息的打印任务;
根据所述打印请求中的打印机物理层标识,将所述打印任务分配给与所述打印机物理层标识对应的打印机虚拟层。
3.根据权利要求2所述的方法,其特征在于,所述打印机服务层根据接收到的打印请求,生成包含打印机类型信息的打印任务,具体包括:
对接收到的打印请求进行解析,得到打印机类型信息和打印任务;
对得到的打印机类型信息和打印任务进行数据组装,得到包含打印机类型信息的打印任务。
4.根据权利要求1所述的方法,其特征在于,所述所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测之前,还包括:
所述打印机虚拟层预先建立任务队列;
利用所建立的任务队列存储接收到的打印任务中的待打印票据。
5.根据权利要求1或4所述的方法,其特征在于,预先建立打印机虚拟层与打印机物理层的映射关系,所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测,得到所述打印机物理层是否可用的监测结果,具体包括:
若所述打印任务中的打印机类型信息为串口打印机或并口打印机,则利用预先建立的探针线程对所对应的打印机串口或打印机并口是否处于读写状态进行监测,得到与所述串口打印机或并口打印机对应的打印机物理层是否可用的监测结果;
若所述打印任务中的打印机类型信息为网口打印机,则利用预先建立的探针线程对所对应的打印机网口是否处于TCP连接状态进行监测,得到与所述网口打印机对应的打印机物理层是否可用的监测结果;
若所述打印任务中的打印机类型信息为驱动打印机,则利用预先建立的探针线程对所对应的打印机物理层的驱动是否处于可用状态进行监测,得到与所述驱动打印机对应的打印机物理层是否可用的监测结果;
若来自不同的打印机的打印机物理层均处于空闲状态,则得到与所述打印机虚拟层对应的打印机物理层可用的监测结果。
6.根据权利要求1所述的方法,其特征在于,所述根据所述监测结果,控制所述打印机物理层打印所述打印任务中的待打印票据,具体包括:
若所述监测结果为与所述打印机虚拟层对应的打印机物理层可用的监测结果,则发送包含待打印票据的打印指令给打印机物理层;
所述打印机物理层根据接收到的待打印票据进行打印。
7.根据权利要求1或6所述的方法,其特征在于,所述根据所述监测结果,控制所述打印机物理层打印所述打印任务中的待打印票据,具体还包括:
若所述监测结果为与所述打印机虚拟层对应的打印机物理层可用的监测结果,则所述打印机虚拟层定打印机虚拟层池中的剩余打印机虚拟层;
若所述打印机虚拟层监测到所述打印机物理层打印结束,解锁所述打印机虚拟层池中的剩余打印机虚拟层。
8.一种票据打印装置,其特征在于,包括:
接收模,用于打印机服务层根据接收到的打印请求得到打印任务,并将所述打印任务分配给对应的打印机虚拟层;
监测模块,用于所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测,得到所述打印机物理层是否可用的监测结果;
制模块,用于根据所述监测结果,控制所述打印机物理层打印所述打印任务中的待打印票据。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至7中任一项所述的票据打印方法。
10.一种设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7中任一项所述的票据打印方法。

说明书全文

票据打印方法及其装置

技术领域

[0001] 本申请涉及打印机技术领域,尤其是涉及到票据打印方法及其装置。

背景技术

[0002] 随着计算机通信技术和网络的普及,票据打印功能已成为众多业务场景中的核心功能之一,而具有票据打印功能的软件也广泛应用于大小商场打印购物清单小票,财务收小票等方面。现有具有票据打印功能的软件多采用“接收打印任务—发送任务至打印机—执行打印操作”的方式实现票据打印功能。
[0003] 目前,餐饮行业中的票据打印也逐渐网络化,特别是餐饮行业应用打印机打印点餐小票等,大量的商户通常使用具有餐饮功能的软件(例如,外卖软件)等方式来更好地参与餐饮行业竞争,以提升商铺的购买。在实际的应用场景中,商户可能同时使用多种具有餐饮功能的软件,每一种软件具有自己独立的打印服务,而票据打印机的一个打印端口同一时刻只能够服务于一个打印服务。当来自不同的具有餐饮功能的软件的多个打印服务同时请求票据打印机的同一个打印端口进行点餐小票打印时,极易导致票据打印机输出的打印内容混淆的问题,以及造成端口被抢占的情况,从而导致打印任务失败甚至造成死(例如,程序卡死)的问题等。发明内容
[0004] 有鉴于此,本申请提供了票据打印方法及其装置,主要目的在于解决目前现有技术中多种具有餐饮功能的软件同时请求票据打印服务时,导致票据打印机输出的打印内容混淆的问题,以及打印端口被抢占,导致打印任务失败甚至造成死锁(例如,程序卡死)的技术问题。
[0005] 根据本申请的一个方面,提供了票据打印方法,该方法包括:
[0006] 打印机服务层根据接收到的打印请求得到打印任务,并将所述打印任务分配给对应的打印机虚拟层
[0007] 所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测,得到与所述打印机虚拟层对应的打印机物理层是否可用的监测结果;
[0008] 根据所述监测结果,控制与所述打印机虚拟层对应的打印机物理层打印所述打印任务中的待打印票据。
[0009] 优选地,所述打印机服务层根据接收到的打印请求得到打印任务,将所述打印任务分配给对应的打印机虚拟层,具体包括:
[0010] 打印机服务层根据接收到的打印请求,生成包含打印机类型信息的打印任务;
[0011] 根据所述打印请求中的打印机物理层标识,将所述打印任务分配给与所述打印机物理层标识对应的打印机虚拟层。
[0012] 优选地,所述打印机服务层根据接收到的打印请求,生成包含打印机类型信息的打印任务,具体包括:
[0013] 对接收到的打印请求进行解析,得到打印机类型信息和打印任务;
[0014] 对得到的打印机类型信息和打印任务进行数据组装,得到包含打印机类型信息的打印任务。
[0015] 优选地,所述所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测之前,还包括:
[0016] 所述打印机虚拟层预先建立任务队列;
[0017] 利用所建立的任务队列存储接收到的打印任务中的待打印票据。
[0018] 优选地,预先建立打印机虚拟层与打印机物理层的映射关系,所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测,得到所述打印机物理层是否可用的监测结果,具体包括:
[0019] 若所述打印任务中的打印机类型信息为串口打印机或并口打印机,则利用预先建立的探针线程对所对应的打印机串口或打印机并口是否处于读写状态进行监测,得到与所述串口打印机或并口打印机对应的打印机物理层是否可用的监测结果;
[0020] 若所述打印任务中的打印机类型信息为网口打印机,则利用预先建立的探针线程对所对应的打印机网口是否处于TCP连接状态进行监测,得到与所述网口打印机对应的打印机物理层是否可用的监测结果;
[0021] 若所述打印任务中的打印机类型信息为驱动打印机,则利用预先建立的探针线程对所对应的打印机物理层的驱动是否处于可用状态进行监测,得到与所述驱动打印机对应的打印机物理层是否可用的监测结果;
[0022] 若来自不同的打印机的打印机物理层均处于空闲状态,则得到与所述打印机虚拟层对应的打印机物理层可用的监测结果。
[0023] 优选地,所述根据所述监测结果,控制所述打印机物理层打印所述打印任务中的待打印票据,具体包括:
[0024] 若所述监测结果为与所述打印机虚拟层对应的打印机物理层可用的监测结果,则发送包含待打印票据的打印指令给打印机物理层;
[0025] 所述打印机物理层根据接收到的待打印票据进行打印。
[0026] 优选地,所述根据所述监测结果,控制所述打印机物理层打印所述打印任务中的待打印票据,具体还包括:
[0027] 若所述监测结果为与所述打印机虚拟层对应的打印机物理层可用的监测结果,则所述打印机虚拟层锁定打印机虚拟层池中的剩余打印机虚拟层;
[0028] 若所述打印机虚拟层监测到所述打印机物理层打印结束,解锁所述打印机虚拟层池中的剩余打印机虚拟层。
[0029] 根据本申请的又一方面,提供了一种票据打印装置,该装置包括:
[0030] 接收模,用于打印机服务层根据接收到的打印请求得到打印任务,并将所述打印任务分配给对应的打印机虚拟层;
[0031] 监测模块,用于所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测,得到与所述打印机虚拟层对应的打印机物理层是否可用的监测结果;
[0032] 控制模块,用于根据所述监测结果,控制与所述打印机虚拟层对应的打印机物理层打印所述打印任务中的待打印票据。
[0033] 优选地,所述接收模块,具体包括:
[0034] 生成单元,用于打印机服务层根据接收到的打印请求,生成包含打印机类型信息的打印任务;
[0035] 分配单元,用于根据所述打印请求中的打印机物理层标识,将所述打印任务分配给与所述打印机物理层标识对应的打印机虚拟层。
[0036] 优选地,所述生成单元,具体包括:
[0037] 对接收到的打印请求进行解析,得到打印机类型信息和打印任务;
[0038] 对得到的打印机类型信息和打印任务进行数据组装,得到包含打印机类型信息的打印任务。
[0039] 优选地,还包括:
[0040] 建立模块,用于所述打印机虚拟层预先建立任务队列;
[0041] 存储模块,用于利用所建立的任务队列存储接收到的打印任务中的待打印票据。
[0042] 优选地,预先建立打印机虚拟层与打印机物理层的映射关系,所述监测模块,具体包括:
[0043] 第一监测单元,用于若所述打印任务中的打印机类型信息为串口打印机或并口打印机,则利用预先建立的探针线程对所对应的打印机串口或打印机并口是否处于读写状态进行监测,得到与所述串口打印机或并口打印机对应的打印机物理层是否可用的监测结果;
[0044] 第二监测单元,用于若所述打印任务中的打印机类型信息为网口打印机,则利用预先建立的探针线程对所对应的打印机网口是否处于TCP连接状态进行监测,得到与所述网口打印机对应的打印机物理层是否可用的监测结果;
[0045] 第三监测单元,用于若所述打印任务中的打印机类型信息为驱动打印机,则利用预先建立的探针线程对所对应的打印机物理层的驱动是否处于可用状态进行监测,得到与所述驱动打印机对应的打印机物理层是否可用的监测结果;
[0046] 判断单元,用于若来自不同的打印机的打印机物理层均处于空闲状态,则得到与所述打印机虚拟层对应的打印机物理层可用的监测结果。
[0047] 优选地,所述控制模块,具体包括:
[0048] 发送单元,用于若所述监测结果为与所述打印机虚拟层对应的打印机物理层可用的监测结果,则发送包含待打印票据的打印指令给打印机物理层;
[0049] 打印单元,用于所述打印机物理层根据接收到的待打印票据进行打印。
[0050] 优选地,所述控制模块,具体还包括:
[0051] 锁定单元,用于若所述监测结果为与所述打印机虚拟层对应的打印机物理层可用的监测结果,则所述打印机虚拟层锁定打印机虚拟层池中的剩余打印机虚拟层;
[0052] 解锁单元,用于若所述打印机虚拟层监测到所述打印机物理层打印结束,解锁所述打印机虚拟层池中的剩余打印机虚拟层。
[0053] 依据本申请再一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述票据打印方法。
[0054] 依据本申请再一个方面,提供了一种设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述票据打印方法。
[0055] 借由上述技术方案,本申请提供的票据打印方法及其装置,与目前现有技术相比,本申请中打印机服务层根据接收到的打印请求得到打印任务,并将打印任务分配给对应的打印机虚拟层,由所对应的打印机虚拟层根据接收到的打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测,得到与所对应的打印机虚拟层对应的打印机物理层是否可用的监测结果,从而根据得到的监测结果,控制与所对应的打印机虚拟层对应的打印机物理层打印打印任务中的待打印票据。可见,利用所创建的打印机物理层能够确定所对应的打印机物理层是否处于可用状态,从而较好地解决现有技术中多种具有餐饮功能的软件同时请求票据打印服务导致打印失败的技术问题,有效避免了票据打印机输出的打印内容混淆,以及打印端口被抢占,导致打印任务失败甚至造成死锁(例如,程序卡死)的情况,合理有序地完成来自多种具有餐饮功能的软件的票据打印服务,提升用户体验。
[0056] 上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。附图说明
[0057] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0058] 图1示出了本申请实施例提供的一种票据打印方法的流程示意图;
[0059] 图2示出了本申请实施例提供的另一种票据打印方法的流程示意图;
[0060] 图3示出了本申请实施例提供的一种票据打印装置的结构示意图;
[0061] 图4示出了本申请实施例提供的另一种票据打印装置的结构示意图。

具体实施方式

[0062] 下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0063] 当商户客户端同时使用多种具有餐饮功能的软件时,会出现同一时刻多种具有餐饮功能的软件的打印服务使用同一个打印端口的情况,当打印端口被打印服务占用时,其他的打印服务无法使用当前打印端口,从而导致打印服务无法继续执行,例如,无法打印或者打印服务之间抢占打印端口导致死锁等问题。
[0064] 针对目前现有技术中存在的问题,本实施例提供了一种票据打印方法,可应用于客户端侧,使得在同时接收到来自多种具有餐饮功能的软件的打印服务时,合理有序地完成来自多种具有餐饮功能的软件的票据打印服务,进而满足商户的体验需求,如图1所示,该方法包括:
[0065] 步骤101、打印机服务层根据接收到的打印请求得到打印任务,并将所述打印任务分配给对应的打印机虚拟层。
[0066] 在本实施例中,打印机服务层接收来自业务方的打印请求,对接收到的打印请求进行解析,得到打印机物理层标识(例如,打印机名称信息或打印机型号信息等),以及根据打印请求生成相应的打印任务,以便打印机服务层根据解析得到的打印机物理层标识,将生成的打印任务发送给与打印机物理层标识对应的打印机虚拟层。其中,业务方为具有餐饮功能的应用程序(例如,外卖软件),根据实际应用场景的需要,业务方不局限于具有餐饮功能的应用程序,此处不对应用程序类别进行具体限定。
[0067] 步骤102、所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测,得到所述打印机物理层是否可用的监测结果。
[0068] 在本实施例中,打印机虚拟层对接收到的打印任务进行解析,得到打印机类型信息和待打印票据,将待打印票据存储在预先建立的任务队列,根据打印机类型信息对与打印机虚拟层存在映射关系的打印机物理层进行可用状态监测,从而进一步根据得到的监测结果执行任务队列中的打印任务。
[0069] 在实际的应用场景中,打印机虚拟层通过轮询的方式监测打印机虚拟层中的任务队列,当打印机虚拟层中的任务队列不为空时,根据打印机类型信息对与打印机虚拟层存在映射关系的打印机物理层进行可用状态监测,以及监测当前所有打印机的打印机物理层是否均处于空闲状态,从而在确定与打印任务对应的打印机的打印端口可用时,打印任务队列中的待打印票据,并停止轮询。其中,根据实际应用场景的需要,打印机类型信息可以来自于打印请求,也可以在建立打印机虚拟层与打印机物理层的映射关系时,预存对应的打印机的打印机类型信息,此处不对打印机类型信息的获取方式进行具体限定。
[0070] 步骤103、根据所述监测结果,控制所述打印机物理层打印所述打印任务中的待打印票据。
[0071] 在本实施例中,当监测结果为与打印任务对应的打印机的打印端口可用时,获取任务队列中的待打印票据,并根据获取到的待打印票据生成包含待打印票据的打印指令,并发送给打印机物理层,以便打印机物理层根据接收到的打印指令中的待打印票据完成相应的打印服务。
[0072] 进一步地,打印机虚拟层监测到打印机物理层根据接收到的打印指令中的待打印票据完成相应的打印服务后,继续对打印机虚拟层中的任务队列进行轮询,并在再次监测到打印机虚拟层中的任务队列不为空时,继续对所对应的打印机物理层进行可用状态监测,从而完成相应的打印服务。
[0073] 本实施例提供的一种票据打印方法,与目前现有技术相比,本实施例能够利用所创建的打印机物理层确定所对应有的打印机物理层是否处于可用状态,从而较好地解决现有技术中多种具有餐饮功能的软件同时请求票据打印服务导致打印失败的技术问题,有效避免了票据打印机输出的打印内容混淆,以及打印端口被抢占,导致打印任务失败甚至造成死锁(例如,程序卡死)的情况,合理有序地完成来自多种具有餐饮功能的软件的票据打印服务,提升用户体验。
[0074] 进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例中的过程,提供了另一种票据打印方法,如图2所示,该方法包括:
[0075] 步骤201、打印机服务层根据接收到的打印请求,生成包含打印机类型信息的打印任务。
[0076] 进一步地,为了说明步骤202具体的实施过程,作为一种可选方式,该过程具体可包括:
[0077] 步骤2011、对接收到的打印请求进行解析,得到打印机类型信息和打印任务。
[0078] 步骤2012、对得到的打印机类型信息和打印任务进行数据组装,得到包含打印机类型信息的打印任务。
[0079] 步骤202、根据所述打印请求中的打印机物理层标识,将所述打印任务分配给与所述打印机物理层标识对应的打印机虚拟层。
[0080] 具体实施中,当打印机的打印机服务层同时接收到来自多个程序(例如,外卖软件)的打印请求时,对接收到的打印请求进行解析,分别得到程序标识,打印机物理层标识(例如,打印机名称信息或打印机型号信息等),打印机类型信息以及打印任务。
[0081] 进一步地,根据解析得到的程序标识分别获取相应的票据模板,利用获取到的票据模板得到模板化的打印任务,根据模板化的打印任务和解析得到的打印机类型信息生成包含打印机类型信息的打印任务,以便根据解析得到的打印机物理层标识,将生成的打印任务分别发送给与打印机物理层标识对应的打印机虚拟层。
[0082] 在实际的应用场景中,打印机虚拟层用于存储任务队列,对任务队列进行轮询操作,以及监测打印机端口的可用状态。在打印机物理层之上创建打印机虚拟层池,在打印机虚拟池中创建多个打印机虚拟层,且为每个打印机物理层分别配置独立的打印机虚拟层,即建立打印机虚拟层与打印机物理层的映射关系。而打印机服务层建立在打印机虚拟层之上,用于接收来自多个业务方的打印请求,以便利用预先存储打印机物理层标识与打印机虚拟层的对应关系,将相应的打印任务分配给与打印机物理层标识对应的打印机虚拟层。
[0083] 步骤203、所述打印机虚拟层预先建立任务队列。
[0084] 步骤204、利用所建立的任务队列存储接收到的打印任务中的待打印票据。
[0085] 具体实施中,在每个打印机虚拟层中创建任务队列,当打印机虚拟层接收到来自打印机服务层发送的包含打印机类型信息的打印任务时,对接收到的打印任务进行解析,得到待打印票据的数据,并将得到的待打印票据的数据存储在所建立的任务队列中。
[0086] 步骤205、预先建立打印机虚拟层与打印机物理层的映射关系,若所述打印任务中的打印机类型信息为串口打印机或并口打印机,则利用预先建立的探针线程对所对应的打印机串口或打印机并口是否处于读写状态进行监测,得到与所述串口打印机或并口打印机对应的打印机物理层是否可用的监测结果;
[0087] 步骤206、若所述打印任务中的打印机类型信息为网口打印机,则利用预先建立的探针线程对所对应的打印机网口是否处于TCP连接状态进行监测,得到与所述网口打印机对应的打印机物理层是否可用的监测结果;
[0088] 步骤207、若所述打印任务中的打印机类型信息为驱动打印机,则利用预先建立的探针线程对所对应的打印机物理层的驱动是否处于可用状态进行监测,得到与所述驱动打印机对应的打印机物理层是否可用的监测结果;
[0089] 步骤208、若来自不同的打印机所有的打印机物理层均处于可用空闲状态,则得到与所述打印机虚拟层对应的打印机物理层可用的监测结果。
[0090] 具体实施中,对打印任务中的打印机类型信息进行识别,得到与打印机类型信息对应的打印机物理层可用状态的监测方式,并进一步激活探针线程,以便利用探针线程探测对应的打印机端口是否可用,以及当前处于连接状态的所有打印机的打印机物理层是否在执行打印任务(即,是否处于空闲状态),从而得到打印机物理层是否可用的监测结果。
[0091] 具体地,若打印机类型信息为串口打印机或并口打印机,则激活探针线程,利用读写文件的方式探测对应的打印机串口或打印机并口是否能够读文件,若是,则得到对应的打印机物理层可用的监测结果;若打印机类型信息为网口打印机,则激活探针线程,利用TCP连接的方式探测对应的打印机网口是否能够建立TCP连接,若是,则得到对应的打印机物理层可用的监测结果;若打印机类型信息为驱动打印机,则激活探针线程,探测对应的打印机物理层的驱动是否处于可用状态,若是,则得到对应的打印机端口可用的监测结果。
[0092] 进一步地,利用探针线程继续探测当前处于连接状态的所有打印机的打印机物理层是否在执行打印任务,若所有的打印机物理层均处于空闲状态,则表示当前状态所有打印机均没有进行打印,即得到与打印机虚拟层对应的打印机物理层可用的监测结果,并结束探针线程。
[0093] 进一步地,在监测到与打印机虚拟层对应的打印机物理层完成相应的打印任务时,再次激活探测线程进行新一轮的探测。根据实际应用场景的需要,也可以在结束探针线程后进行计时,例如,在结束探针线程100ms后重新激活探针线程,以便对打印机虚拟层中的任务队列进行新一轮的探测,从而有效避免高性能消耗。
[0094] 步骤209、若所述监测结果为与所述打印机虚拟层对应的打印机物理层可用的监测结果,则所述打印机虚拟层锁定打印机虚拟层池中的剩余打印机虚拟层。
[0095] 步骤210、若所述监测结果为与所述打印机虚拟层对应的打印机物理层可用的监测结果,则发送包含待打印票据的打印指令给打印机物理层。
[0096] 具体实施中,若得到对应的打印机端口可用,以及当前处于连接状态的所有打印机的打印机物理层均处于空闲状态的打印机物理层可用的监测结果,则对打印机虚拟层池中除当前打印机虚拟层之外的其它打印机虚拟层均进行锁定操作,同时发送包含待打印票据的打印指令给对应的打印机物理层。
[0097] 步骤211、所述打印机物理层根据接收到的待打印票据进行打印。
[0098] 步骤212、若所述打印机虚拟层监测到所述打印机物理层打印结束,解锁所述打印机虚拟层池中的剩余打印机虚拟层。
[0099] 具体实施中,在监测到打印机物理层完成相应的打印任务时,更新对应的打印机虚拟层中的任务队列,以及更新客户端侧的任务信息。同时,对打印机虚拟层池中除当前打印机虚拟层之外的其它打印机虚拟层进行解锁操作,以便其它打印机虚拟层继续对相应的打印机端口进行可用监测,以及当前处于连接状态的所有打印机的打印机物理层是否在执行打印任务进行监测,从而合理有序地进行下一个打印任务。
[0100] 通过应用本实施例提供的方法,即打印机服务层根据接收到的打印请求得到打印任务,并将打印任务分配给对应的打印机虚拟层,由所对应的打印机虚拟层根据接收到的打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测,得到与所对应的打印机虚拟层对应的打印机物理层是否可用的监测结果,从而根据得到的监测结果,控制与所对应的打印机虚拟层对应的打印机物理层打印打印任务中的待打印票据。可见,利用所创建的打印机物理层能够确定所对应的打印机物理层是否处于可用状态,从而较好地解决现有技术中多种具有餐饮功能的软件同时请求票据打印服务导致打印失败的技术问题,有效避免了票据打印机输出的打印内容混淆,以及打印端口被抢占,导致打印任务失败甚至造成死锁(例如,程序卡死)的情况,合理有序地完成来自多种具有餐饮功能的软件的票据打印服务,满足用户对票据打印的体验需求。
[0101] 进一步地,作为图1和图2所示方法的具体实现,本申请实施例提供了一种票据打印装置,如图3所示,该装置包括:接收模块31、监测模块34、控制模块35。
[0102] 接收模块31,用于打印机服务层根据接收到的打印请求得到打印任务,并将所述打印任务分配给对应的打印机虚拟层;
[0103] 监测模块34,用于所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测,得到所述打印机物理层是否可用的监测结果;
[0104] 控制模块35,用于根据所述监测结果,控制所述打印机物理层打印所述打印任务中的待打印票据。
[0105] 在具体的应用场景中,如图4所示,本装置还可包括:建立模块33、存储模块34。
[0106] 具体实施中,接收模块31具体包括:生成单元311、分配单元312。
[0107] 生成单元311,具体用于打印机服务层根据接收到的打印请求,生成包含打印机类型信息的打印任务;
[0108] 分配单元312,具体用于根据所述打印请求中的打印机物理层标识,将所述打印任务分配给与所述打印机物理层标识对应的打印机虚拟层。
[0109] 在具体的应用场景中,生成单元311,具体还包括:对接收到的打印请求进行解析,得到打印机类型信息和打印任务;以及,对得到的打印机类型信息和打印任务进行数据组装,得到包含打印机类型信息的打印任务。
[0110] 具体实施中,建立模块32,用于所述打印机虚拟层预先建立任务队列。
[0111] 具体实施中,存储模块33,用于利用所建立的任务队列存储接收到的打印任务中的待打印票据。
[0112] 具体实施中,监测模块34具体包括:第一监测单元341、第二监测单元342、第三监测单元343、判断单元344。
[0113] 第一监测单元341,具体用于若所述打印任务中的打印机类型信息为串口打印机或并口打印机,则利用预先建立的探针线程对所对应的打印机串口或打印机并口是否处于读写状态进行监测,得到与所述串口打印机或并口打印机对应的打印机物理层是否可用的监测结果。
[0114] 第二监测单元342,具体用于若所述打印任务中的打印机类型信息为网口打印机,则利用预先建立的探针线程对所对应的打印机网口是否处于TCP连接状态进行监测,得到与所述网口打印机对应的打印机物理层是否可用的监测结果。
[0115] 第三监测单元343,具体用于若所述打印任务中的打印机类型信息为驱动打印机,则利用预先建立的探针线程对所对应的打印机物理层的驱动是否处于可用状态进行监测,得到与所述驱动打印机对应的打印机物理层是否可用的监测结果。
[0116] 判断单元344,具体用于若来自不同的打印机的打印机物理层均处于空闲状态,则得到与所述打印机虚拟层对应的打印机物理层可用的监测结果。
[0117] 具体实施中,控制模块35具体包括:发送单元352、打印单元353。
[0118] 发送单元352,具体用于若所述监测结果为与所述打印机虚拟层对应的打印机物理层可用的监测结果,则发送包含待打印票据的打印指令给打印机物理层。
[0119] 打印单元353,具体用于所述打印机物理层根据接收到的待打印票据进行打印。
[0120] 具体实施中,控制模块35具体还包括:锁定单元351、解锁单元354。
[0121] 锁定单元351,具体用于若所述监测结果为与所述打印机虚拟层对应的打印机物理层可用的监测结果,则所述打印机虚拟层锁定打印机虚拟层池中的剩余打印机虚拟层。
[0122] 解锁单元354,具体用于若所述打印机虚拟层监测到所述打印机物理层打印结束,解锁所述打印机虚拟层池中的剩余打印机虚拟层。
[0123] 需要说明的是,本实施例提供的一种票据打印装置所涉及各功能模块、功能单元的其它相应描述,可以参考图1和图2中的对应描述,在此不再赘述。
[0124] 通过应用上述票据打印装置,能够利用所创建的打印机物理层确定所对应有的打印机物理层是否处于可用状态,从而较好地解决现有技术中多种具有餐饮功能的软件同时请求票据打印服务导致打印失败的技术问题,有效避免了票据打印机输出的打印内容混淆,以及打印端口被抢占,导致打印任务失败甚至造成死锁(例如,程序卡死)的情况,合理有序地完成来自多种具有餐饮功能的软件的票据打印服务,提升用户体验。
[0125] 基于上述如图1和图2所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1和图2所示的票据打印方法。
[0126] 基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景的票据打印方法。
[0127] 基于上述如图1和图2所示的方法,以及图3和图4所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种终端设备,具体可以为个人计算机、平板电脑、智能手机、智能手表、POS设备或其他网络设备等,该终端设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1和图2所示的票据打印方法。
[0128] 可选的,上述实体设备都还可以包括用户接口、网络接口、摄像头、射频(Radio Frequency,RF)电路传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。
[0129] 本领域技术人员可以理解,本实施例提供的一种终端设备的实体设备结构并不构成对上述实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0130] 存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述两个实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
[0131] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本申请的技术方案,与目前现有技术相比,本实施例可有效改善票据打印的有序性,从而进一步满足用户对票据打印的体验需求。
[0132] 本申请实施例提供了以下技术方案:
[0133] A1、一种票据打印方法,包括:
[0134] 打印机服务层根据接收到的打印请求得到打印任务,并将所述打印任务分配给对应的打印机虚拟层;
[0135] 所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测,得到所述打印机物理层是否可用的监测结果;
[0136] 根据所述监测结果,控制所述打印机物理层打印所述打印任务中的待打印票据。
[0137] A2、根据权利要求A1所述的方法,所述打印机服务层根据接收到的打印请求得到打印任务,将所述打印任务分配给对应的打印机虚拟层,具体包括:
[0138] 打印机服务层根据接收到的打印请求,生成包含打印机类型信息的打印任务;
[0139] 根据所述打印请求中的打印机物理层标识,将所述打印任务分配给与所述打印机物理层标识对应的打印机虚拟层。
[0140] A3、根据权利要求A2所述的方法,所述打印机服务层根据接收到的打印请求,生成包含打印机类型信息的打印任务,具体包括:
[0141] 对接收到的打印请求进行解析,得到打印机类型信息和打印任务;
[0142] 对得到的打印机类型信息和打印任务进行数据组装,得到包含打印机类型信息的打印任务。
[0143] A4、根据权利要求A1所述的方法,所述所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测之前,还包括:
[0144] 所述打印机虚拟层预先建立任务队列;
[0145] 利用所建立的任务队列存储接收到的打印任务中的待打印票据。
[0146] A5、根据权利要求A1或A4所述的方法,预先建立打印机虚拟层与打印机物理层的映射关系,所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测,得到所述打印机物理层是否可用的监测结果,具体包括:
[0147] 若所述打印任务中的打印机类型信息为串口打印机或并口打印机,则利用预先建立的探针线程对所对应的打印机串口或打印机并口是否处于读写状态进行监测,得到与所述串口打印机或并口打印机对应的打印机物理层是否可用的监测结果;
[0148] 若所述打印任务中的打印机类型信息为网口打印机,则利用预先建立的探针线程对所对应的打印机网口是否处于TCP连接状态进行监测,得到与所述网口打印机对应的打印机物理层是否可用的监测结果;
[0149] 若所述打印任务中的打印机类型信息为驱动打印机,则利用预先建立的探针线程对所对应的打印机物理层的驱动是否处于可用状态进行监测,得到与所述驱动打印机对应的打印机物理层是否可用的监测结果;
[0150] 若来自不同的打印机的打印机物理层均处于空闲状态,则得到与所述打印机虚拟层对应的打印机物理层可用的监测结果。
[0151] A6、根据权利要求A1所述的方法,所述根据所述监测结果,控制所述打印机物理层打印所述打印任务中的待打印票据,具体包括:
[0152] 若所述监测结果为与所述打印机虚拟层对应的打印机物理层可用的监测结果,则发送包含待打印票据的打印指令给打印机物理层;
[0153] 所述打印机物理层根据接收到的待打印票据进行打印。
[0154] A7、根据权利要求A1或A6所述的方法,所述根据所述监测结果,控制所述打印机物理层打印所述打印任务中的待打印票据,具体还包括:
[0155] 若所述监测结果为与所述打印机虚拟层对应的打印机物理层可用的监测结果,则所述打印机虚拟层锁定打印机虚拟层池中的剩余打印机虚拟层;
[0156] 若所述打印机虚拟层监测到所述打印机物理层打印结束,解锁所述打印机虚拟层池中的剩余打印机虚拟层。
[0157] B8、一种票据打印装置,包括:
[0158] 接收模块,用于打印机服务层根据接收到的打印请求得到打印任务,并将所述打印任务分配给对应的打印机虚拟层;
[0159] 监测模块,用于所述打印机虚拟层根据所述打印任务中的打印机类型信息,对所对应的打印机物理层进行可用状态监测,得到所述打印机物理层是否可用的监测结果;
[0160] 控制模块,用于根据所述监测结果,控制所述打印机物理层打印所述打印任务中的待打印票据。
[0161] B9、根据权利要求B8所述的装置,所述接收模块,具体包括:
[0162] 生成单元,用于打印机服务层根据接收到的打印请求,生成包含打印机类型信息的打印任务;
[0163] 分配单元,用于根据所述打印请求中的打印机物理层标识,将所述打印任务分配给与所述打印机物理层标识对应的打印机虚拟层。
[0164] B10、根据权利要求B9所述的装置,所述生成单元,具体包括:
[0165] 对接收到的打印请求进行解析,得到打印机类型信息和打印任务;
[0166] 对得到的打印机类型信息和打印任务进行数据组装,得到包含打印机类型信息的打印任务。
[0167] B11、根据权利要求B8所述的装置,还包括:
[0168] 建立模块,用于所述打印机虚拟层预先建立任务队列;
[0169] 存储模块,用于利用所建立的任务队列存储接收到的打印任务中的待打印票据。
[0170] B12、根据权利要求B8或B11所述的装置,预先建立打印机虚拟层与打印机物理层的映射关系,所述监测模块,具体包括:
[0171] 第一监测单元,用于若所述打印任务中的打印机类型信息为串口打印机或并口打印机,则利用预先建立的探针线程对所对应的打印机串口或打印机并口是否处于读写状态进行监测,得到与所述串口打印机或并口打印机对应的打印机物理层是否可用的监测结果;
[0172] 第二监测单元,用于若所述打印任务中的打印机类型信息为网口打印机,则利用预先建立的探针线程对所对应的打印机网口是否处于TCP连接状态进行监测,得到与所述网口打印机对应的打印机物理层是否可用的监测结果;
[0173] 第三监测单元,用于若所述打印任务中的打印机类型信息为驱动打印机,则利用预先建立的探针线程对所对应的打印机物理层的驱动是否处于可用状态进行监测,得到与所述驱动打印机对应的打印机物理层是否可用的监测结果;
[0174] 判断单元,用于若来自不同的打印机的打印机物理层均处于空闲状态,则得到与所述打印机虚拟层对应的打印机物理层可用的监测结果。
[0175] B13、根据权利要求B8所述的装置,所述控制模块,具体包括:
[0176] 发送单元,用于若所述监测结果为与所述打印机虚拟层对应的打印机物理层可用的监测结果,则发送包含待打印票据的打印指令给打印机物理层;
[0177] 打印单元,用于所述打印机物理层根据接收到的待打印票据进行打印。
[0178] B14、根据权利要求B8或B13所述的装置,所述控制模块,具体还包括:
[0179] 锁定单元,用于若所述监测结果为与所述打印机虚拟层对应的打印机物理层可用的监测结果,则所述打印机虚拟层锁定打印机虚拟层池中的剩余打印机虚拟层;
[0180] 解锁单元,用于若所述打印机虚拟层监测到所述打印机物理层打印结束,解锁所述打印机虚拟层池中的剩余打印机虚拟层。
[0181] C15、一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现权利要求A1至A7中任一项所述的票据打印方法。
[0182] D16、一种设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求A1至A7中任一项所述的票据打印方法。
[0183] 本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0184] 上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈