掌桥专利:专业的专利平台
掌桥专利
首页

打印机的控制方法、装置及设备

文献发布时间:2023-06-19 11:00:24


打印机的控制方法、装置及设备

技术领域

本申请涉及打印机控制技术领域,具体涉及一种打印机的控制方法、装置及设备。

背景技术

随着打印技术的高速发展,各种功能的打印机也层出不穷。

目前,物流工作人员所使用的打印机多为蓝牙打印机,利用蓝牙打印机可以进行揽件录单、扫描和打印快递单等操作。然而,物流工作人员在使用蓝牙打印机进行打印的时候,需要一直等待打印任务结束才能进行其他操作。由于打印需要时间,这就容易导致物流工作人员在打印时需要等待较长时间,尤其是在打印任务量大的时候,会严重影响物流工作人员的工作效率。

发明内容

有鉴于此,本申请的目的在于克服现有技术的不足,提供一种打印机的控制方法、装置及设备。

为实现以上目的,本申请采用如下技术方案:

本申请的第一方面提供一种打印机的控制方法,包括:

接收客户端发送的网络连接请求,并根据所述网络连接请求与所述客户端建立网络连接;

接收所述客户端发送的打印请求,检测当前运行状态是否处于非打印工作状态;

若处于非打印工作状态,建立异步线程;

接收所述客户端发送的打印任务,将所述打印任务按顺序依次发送到所述异步线程的处理队列中进行打印处理。

可选的,所述将所述打印任务按顺序依次发送到所述异步线程的处理队列中进行打印处理,包括:

确定所述处理队列中的当前打印任务;

根据当前打印任务,获取对应的打印数据并打印;

在检测到当前打印任务结束后,发出回调指令,以处理下一个打印任务,直至所述处理队列中的打印任务处理完毕。

可选的,所述根据当前打印任务,获取对应的打印数据并打印,包括:

根据当前打印任务,从所述客户端中调取与当前打印任务对应的打印数据;

若调取成功,将打印数据缓存到所述处理队列中进行打印。

可选的,所述从所述客户端中调取与当前打印任务对应的打印数据之后,所述方法还包括:

若调取失败,将当前打印任务标记为打印失败,并结束当前打印任务。

可选的,所述在检测到当前打印任务结束后,发出回调指令,包括:

若检测到成功完成当前打印任务,发送成功的回调指令给所述客户端;

若检测到没有成功完成当前打印任务,获取失败原因,并将所述失败原因和失败的回调指令发送给所述客户端,以使所述客户端将所述失败原因上传给服务器并展示给用户。

可选的,还包括:

接收所述客户端发送的打印任务中断请求;

从所述处理队列中查找与所述打印任务中断请求对应的打印任务,并检测对应的打印任务的处理状态;

若所述处理状态为待打印状态,将对应的打印任务从所述处理队列中删除;若所述处理状态为打印中状态,停止对当前打印任务的打印,并结束当前打印任务。

可选的,所述非打印工作状态包括扫描状态和揽件状态。

可选的,所述接收所述客户端发送的打印任务之后,所述方法还包括:

获取所述打印任务的处理状态并更新到所述客户端。

本申请的第二方面提供一种打印机的控制装置,包括:

第一构建模块,用于接收客户端发送的网络连接请求,并根据所述网络连接请求与所述客户端建立网络连接;

检测模块,用于接收所述客户端发送的打印请求,检测当前运行状态是否处于非打印工作状态;

第二构建模块,用于在检测到当前运行状态处于非打印工作状态时,建立异步线程;

打印处理模块,用于接收所述客户端发送的打印任务,将所述打印任务按顺序依次发送到所述异步线程的处理队列中进行打印处理。

本申请的第三方面提供一种打印机的控制设备,包括:

处理器,以及与所述处理器相连接的存储器;

所述存储器用于存储计算机程序;

所述处理器用于调用并执行所述存储器中的所述计算机程序,以执行如本申请的第一方面所述的方法。

本申请提供的技术方案可以包括以下有益效果:

本申请的方案中,根据接收到的客户端发送的网络连接请求与客户端建立网络连接关系,为实现与客户端的数据交互奠定网络基础。在接收到客户端发送的打印请求后,检测当前运行状态是否处于非打印工作状态,以便于在确认当前没有进行打印工作的同时,是否在进行其他工作。如果当前处于非打印工作状态,即当前虽然没有进行打印工作,但还在执行其他的工作,此时,建立异步线程,以便于在不影响执行其他的工作的同时,可以执行打印工作。在接收到客户端发送的打印任务后,将打印任务按顺序依次发送到异步线程的处理队列中进行打印处理。如此,可以实现打印机的打印工作和非打印工作的同步进行,节省操作时间,有效提高操作人员的工作效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一个实施例提供的一种打印机的控制方法的流程图。

图2是本申请另一个实施例提供的一种打印机的控制装置的结构示意图。

图3是本申请另一个实施例提供的一种打印机的控制设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将对本申请的技术方案进行详细的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。

参见图1,图1是本申请一个实施例提供的一种打印机的控制方法的流程图。本实施例提供一种打印机的控制方法,如图所示,该方法具体可以包括如下步骤:

步骤11、接收客户端发送的网络连接请求,并根据网络连接请求与客户端建立网络连接。

实施时,可以以打印机作为执行主体,通过接收客户端发送的网络连接信号,实现打印机和客户端的网络连接。例如,打印机为蓝牙打印机,用户可以利用手机作为客户端,通过蓝牙与蓝牙打印机建立连接,使得蓝牙打印机和手机可以进行数据交互。

步骤12、接收客户端发送的打印请求,检测当前运行状态是否处于非打印工作状态。

在与客户端建立网络连接之后,可以接收客户端发送的打印请求,并在接收到打印请求时,检测当前运行状态是否处于打印状态以及是否处于其他工作状态。这种情况下的检测一方面可以确认当前打印机是否正在执行打印功能,另一方面可以确认打印机是否在执行其他非打印功能。

如果当前打印机正在被执行打印功能,则可以按照现有的打印处理方式处理接收到的打印请求;如果打印机正处于执行其他非打印功能的工作状态,则执行步骤13。

其中,非打印工作状态可以包括扫描状态和揽件状态。

步骤13、建立异步线程。

为了使打印机处于其他工作状态时仍然可以进行打印工作,可以在确认打印机处于非打印工作状态后,通过建立异步线程的方式创建一个异步线程的队列来处理后续打印任务。如此,主线程可以继续执行非打印工作,而异步线程则专门用于处理打印工作,实现打印与其他操作的同步进行。

步骤14、接收客户端发送的打印任务,将打印任务按顺序依次发送到异步线程的处理队列中进行打印处理。

实施时,打印任务可以是多个。在与客户端建立网络连接关系的期间,一旦接收到客户端发送的打印任务,接收到的打印任务都会被发送到异步线程的处理队列中进行排序等待,直至被打印处理。

本实施例中,根据接收到的客户端发送的网络连接请求与客户端建立网络连接关系,为实现与客户端的数据交互奠定网络基础。在接收到客户端发送的打印请求后,检测当前运行状态是否处于非打印工作状态,以便于在确认当前没有进行打印工作的同时,是否在进行其他工作。如果当前处于非打印工作状态,即当前虽然没有进行打印工作,但还在执行其他的工作,此时,建立异步线程,以便于在不影响执行其他的工作的同时,可以执行打印工作。在接收到客户端发送的打印任务后,将打印任务按顺序依次发送到异步线程的处理队列中进行打印处理。如此,可以实现打印机的打印工作和非打印工作的同步进行,节省操作时间,有效提高操作人员的工作效率。

具体实施时,打印机的控制方法的执行主体可以是打印机,也可以是打印机中基于软件和/或硬件的功能模块,还可以是其他的设备,等。

为了便于用户可以实时了解到打印任务的打印进程,一些实施例中,在接收客户端发送的打印任务之后,打印机的控制方法还可以包括:获取打印任务的处理状态并更新到客户端。

具体实施时,在对多个打印任务进行打印过程中,由于打印机一次只能处理一个打印任务,所以处理队列中的多个打印任务要排序等待。在获取多个打印任务的处理状态后,可以将处理状态实时更新到客户端,客户端的显示界面可以显示各个打印任务的打印信息。打印信息可以包括:打印任务的标识信息、处理状态和打印任务建立的时间。其中,每个打印任务都有其唯一的标识信息。如此,用户可以根据更新到客户端的打印信息实时了解到各个打印任务的处理情况,对于物流工作人员,也更加便于他们核对打印任务。

一些实施例中,在将打印任务按顺序依次发送到异步线程的处理队列中进行打印处理时,具体可以包括如下步骤:确定处理队列中的当前打印任务;根据当前打印任务,获取对应的打印数据并打印;在检测到当前打印任务结束后,发出回调指令,以处理下一个打印任务,直至处理队列中的打印任务处理完毕。

在解决异步线程的问题时,可以基于C语言封装的多线程优化技术(GrandCentral Dispatch,GCD),实现打印机的控制方法中多核线程的方案。GCD主要是用于优化程序支持多核处理器,可以在线程池的模式下执行的并发任务。在确定使用GCD之后,由于放入处理队列中的打印任务实质上是组合好的data数据,这些数据是由CPCL指令组合而成的,打印机作为执行主体,可以通过识别这些CPCL指令,做出对应的打印操作,处理队列需要做的是在打印机处理完一个打印任务并抛出回调指令后,接着处理下一个打印任务。由于回调本身是异步的,为了能够使处理队列可以一个一个地处理打印机的回调,可以引入GCD中的信号量机制。与操作系统中的信号量的消费机制类似,实施时,首先会创建一个信号量,然后让打印任务去消费创建的信号量。在消费信号量的过程中,其他的打印任务会一直等待这个信号量被消费,直至打印任务消费完信号量,如此,解决了异步线程中处理队列执行打印工作的问题,保证了打印工作的有效、独立进行。

一些实施例中,在根据当前打印任务,获取对应的打印数据并打印时,具体可以执行如下步骤:根据当前打印任务,从客户端中调取与当前打印任务对应的打印数据;若调取成功,将打印数据缓存到处理队列中进行打印。

实施时,接收到的打印任务都会被投入到处理队列中进行排序,等待打印处理,在打印任务被打印处理时,打印机首先根据当前打印任务从建立网络链接关系的客户端处获取对应的打印数据,并将获取到的打印数据缓存到处理队列中,以进行打印。

然而,受外界多重因素的影响,可能会出现打印机获取打印数据失败的情况。为此,打印机的控制方法还可以包括:若调取失败,将当前打印任务标记为打印失败,并结束当前打印任务。以便于继续处理后续的打印任务,在不影响整体打印进程的同时,保证打印效率。

相应的,在检测到当前打印任务结束后,可以对打印任务的完成情况进行检测。若检测到成功完成当前打印任务,可以发送成功的回调指令给客户端,以通知客户端完成当前打印任务的同时,可以为下一步调取打印数据做准备。若检测到没有成功完成当前打印任务,获取失败原因,并将失败原因和失败的回调指令发送给客户端,以使客户端将失败原因上传给服务器并展示给用户,如此,在服务器做好备份工作的同时,可以提醒用户,以便于用户可以根据失败原因做出应对。

一些实施例中,打印机的控制方法还可以包括:接收客户端发送的打印任务中断请求;从处理队列中查找与打印任务中断请求对应的打印任务,并检测对应的打印任务的处理状态;若处理状态为待打印状态,将对应的打印任务从处理队列中删除;若处理状态为打印中状态,停止对当前打印任务的打印,并结束当前打印任务。如此,用户在发出打印任务后,还可以根据自己的需求中断某个或者全部打印任务。

此外,客户端还可以通过中断网络连接的方式结束打印任务。实施时,在客户端中断当前建立的网络连接关系后,打印机将无法通过处理队列中的打印任务从客户端获取打印数据,则打印数据获取失败,打印任务结束。

同样的,受外界因素的影响,例如,APP被杀掉、打印机断电、打印机系统异常或者不规范的操作等意外情况的发生,也会导致打印被中断,继而造成打印失败。为了应对这种突发的意外情况,可以预先对客户端的打印数据进行备份处理,并同步备份到对应的服务器中,以便于打印数据的丢失。又或者,可以在打印机获取打印任务后,随即调取对应的打印数据,将打印任务和对应的打印数据放入处理队列中进行打印处理。

基于相同的技术构思,本实施例提供一种打印机的控制装置,如图2所示,该装置具体可以包括:第一构建模块201,用于接收客户端发送的网络连接请求,并根据网络连接请求与客户端建立网络连接;检测模块202,用于接收客户端发送的打印请求,检测当前运行状态是否处于非打印工作状态;第二构建模块203,用于在检测到当前运行状态处于非打印工作状态时,建立异步线程;打印处理模块204,用于接收客户端发送的打印任务,将打印任务按顺序依次发送到异步线程的处理队列中进行打印处理。

其中,非打印工作状态可以包括扫描状态和揽件状态。

可选的,将打印任务按顺序依次发送到异步线程的处理队列中进行打印处理,打印处理模块204,可以用于:确定处理队列中的当前打印任务;根据当前打印任务,获取对应的打印数据并打印;在检测到当前打印任务结束后,发出回调指令,以处理下一个打印任务,直至处理队列中的打印任务处理完毕。

可选的,根据当前打印任务,获取对应的打印数据并打印,打印处理模块204,具体可以用于:根据当前打印任务,从客户端中调取与当前打印任务对应的打印数据;若调取成功,将打印数据缓存到处理队列中进行打印。

可选的,从客户端中调取与当前打印任务对应的打印数据之后,打印处理模块204,还可以用于:若从客户端中调取与当前打印任务对应的打印数据失败,将当前打印任务标记为打印失败,并结束当前打印任务。

可选的,在检测到当前打印任务结束后,发出回调指令,打印处理模块204,具体可以用于:若检测到成功完成当前打印任务,发送成功的回调指令给客户端;同样的,若检测到没有成功完成当前打印任务,获取失败原因,并将失败原因和失败的回调指令发送给客户端,以使客户端将失败原因上传给服务器并展示给用户。

可选的,打印机的控制装置还可以包括中断处理模块,中断处理模块用于:接收客户端发送的打印任务中断请求;从处理队列中查找与打印任务中断请求对应的打印任务,并检测对应的打印任务的处理状态;若处理状态为待打印状态,将对应的打印任务从处理队列中删除;若处理状态为打印中状态,停止对当前打印任务的打印,并结束当前打印任务。

可选的,接收客户端发送的打印任务之后,打印处理模块204,还可以用于:获取打印任务的处理状态并更新到客户端。

本实施例提供的打印机的控制装置的具体实施方案可以参考以上任意实施例所述的打印机的控制方法的实现方式,此处不再赘述。

基于相同的技术构思,本实施例提供一种打印机的控制设备,如图3所示,该设备具体可以包括:处理器301,以及与处理器301相连接的存储器302;存储器302用于存储计算机程序;处理器301用于调用并执行存储器302中的计算机程序,以执行如以上任意实施例所述的打印机的控制方法。

本实施例提供的打印机的控制设备的具体实施方案可以参考以上任意实施例所述的打印机的控制方法的实现方式,此处不再赘述。

本申请的实施例提供一种存储介质,存储介质存储有计算机程序,计算机程序被处理器执行时,实现如以上任意实施例所述的打印机的控制方法的各个步骤。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

相关技术
  • 打印机及打印机控制方法、终端设备
  • 具有打印机驱动器的主机设备及打印机驱动器的控制方法
技术分类

06120112759061