CN111352596B - 微型打印机驱动方法、装置、设备和存储介质 - Google Patents
微型打印机驱动方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN111352596B CN111352596B CN202010140114.1A CN202010140114A CN111352596B CN 111352596 B CN111352596 B CN 111352596B CN 202010140114 A CN202010140114 A CN 202010140114A CN 111352596 B CN111352596 B CN 111352596B
- Authority
- CN
- China
- Prior art keywords
- printer
- instruction
- instruction set
- function
- micro
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000007639 printing Methods 0.000 claims abstract description 82
- 238000004891 communication Methods 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 abstract description 2
- 238000000926 separation method Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 131
- 238000012423 maintenance Methods 0.000 description 11
- 238000011161 development Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000029087 digestion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000011295 pitch Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1224—Client or server resources management
- G06F3/1225—Software update, e.g. print driver, modules, plug-ins, fonts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种微型打印机驱动方法、装置、设备和存储介质。微型打印机驱动方法根据打印请求在函数表中获取操作函数,进而在指令集中查找对应的打印操作指令,以指示微型打印机进行打印。其中,函数表中的各函数用于实现打印机的各种操作;指令集中的模板指令集包含打印机通用支持的指令,而预设指令集包含打印机支持的特殊指令。基于此,应用程序使用微型打印机变得简单,仅需发送请求来调用函数表中的指令即可,与具体的打印机硬件分离,即本申请实施例能够适配多种微型打印机,指令集中的预设指令集可满足打印机的特殊指令,便于底层打印机硬件的更换,有效降低升级和维护的成本,实现跨平台应用。
Description
技术领域
本申请涉及嵌入式微型打印机技术领域,特别是涉及一种微型打印机驱动方法、装置、设备和存储介质。
背景技术
随着微型打印机应用的普及,例如出租车发票打印、商家小票打印、嵌入式设备即时报告打印等,市面上出现了各式各样的来自不同厂商的嵌入式微型打印机。这类打印机各有各的优势,在各自的领域都有着不可替代的作用。为了便于用户使用微型打印机,厂商通常会给用户提供一套操作嵌入式微型打印机的指令,并预留相关的通信接口(I/O、USB、I2C、UART等)来传输指令。
嵌入式微型打印机与传统的PC打印机(与电脑连接使用的打印机)不同,PC系统通常是固定的(Windows、IOS等),因而针对这些固有的操作系统,厂商通常会直接提供完善的打印机驱动,安装后即可使用,十分便捷。但在嵌入式系统中,MCU、操作系统等十分繁多,应用场合也更加灵活和多样化。厂商很难提供所有MCU以及所有操作系统的驱动,因而往往需要由使用者根据实际情况自行开发微型打印机驱动。即,传统技术缺少合适的微型打印机驱动管理框架,不具有跨平台能力,维护成本高。
发明内容
基于此,有必要针对传统技术缺少合适的微型打印机驱动管理框架,不具有跨平台能力,维护成本高的问题,提供一种微型打印机驱动方法、装置、设备和存储介质。
为了实现上述目的,一方面,本申请实施例提供了一种微型打印机驱动方法,包括:
根据获取到的打印请求,在函数表中获取对应的操作函数;函数表为基于打印机的各操作进行定义得到的函数集合;
根据操作函数,在指令集中获取对应的打印操作指令;指令集包括模板指令集和预设指令集;模板指令集为基于基础打印指令构建得到的打印机指令表;预设指令集包括打印机的自定义指令;
将打印操作指令传输给打印机。
在其中一个实施例中,根据操作函数,在指令集中获取对应的打印操作指令的步骤包括:
在预设指令集中查找操作函数对应的打印操作指令,若预设指令集未包括打印操作指令,则在模板指令集中获取打印操作指令。
在其中一个实施例中,将打印操作指令传输给打印机的步骤包括:
根据打印机的通信方式,确认对应的指令发送器;
向指令发送器发送传输指令;传输指令用于指示指令发送器按照通信方式向打印机传输打印操作指令。
在其中一个实施例中,打印请求为应用程序发起的请求。
在其中一个实施例中,根据获取到的打印请求,在函数表中获取对应的操作函数的步骤之前,还包括:
根据应用程序传输的初始化函数,执行打印机的硬件初始化并创建打印机对象、向打印机对象传入函数表;
在完成打印机对象的创建时,传输打印机的引用句柄给应用程序。
在其中一个实施例中,打印请求为应用程序根据引用句柄生成的请求;
操作函数为打印机对象根据打印请求、在函数表中查找得到。
在其中一个实施例中,将打印操作指令传输给打印机的步骤之后,还包括:
获取打印机的处理结果;处理结果为打印机执行打印操作指令得到;
将处理结果传输给应用程序。
另一方面,本申请实施例还提供了一种微型打印机驱动装置,包括:
函数获取模块,用于根据获取到的打印请求,在函数表中获取对应的操作函数;函数表为基于打印机的各操作进行定义得到的函数集合;
指令获取模块,用于根据操作函数,在指令集中获取对应的打印操作指令;指令集包括模板指令集和预设指令集;模板指令集为基于基础打印指令构建得到的打印机指令表;预设指令集包括打印机的自定义指令;
指令传输模块,用于将打印操作指令传输给打印机。
在其中一个实施例中,提供了一种设备,包括处理器和连接处理器的微型打印机。处理器用于实现如上述的微型打印机驱动方法。
在其中一个实施例中,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的微型打印机驱动方法。
上述技术方案中的一个技术方案具有如下优点和有益效果:
根据打印请求在函数表中获取操作函数,进而在指令集中查找对应的打印操作指令,以指示微型打印机进行打印。其中,函数表中的各函数用于实现打印机的各种操作;指令集中的模板指令集包含打印机通用支持的指令,而预设指令集包含打印机支持的特殊指令。基于此,应用程序使用微型打印机变得简单,仅需发送请求来调用函数表中的指令即可,与具体的打印机硬件分离,即本申请实施例能够适配多种微型打印机,指令集中的预设指令集可满足打印机的特殊指令,便于底层打印机硬件的更换,有效降低升级和维护的成本,实现跨平台应用。同时,应用程序不与具体的打印机硬件绑定,便于应用程序的复用和维护。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为一个实施例中微型打印机驱动方法的第一示意性流程图;
图2为一个实施例中微型打印机驱动方法的第二示意性流程图;
图3为一个实施例中微型打印机驱动方法的第一示意性架构图;
图4为一个实施例中微型打印机驱动方法的初始化流程示意图;
图5为一个实施例中微型打印机驱动方法的打印机调用示意图;
图6为一个实施例中微型打印机驱动方法的UML类图;
图7为一个实施例中微型打印机驱动方法的第二示意性架构图;
图8为一个实施例中微型打印机驱动方法的第三示意性架构图;
图9为一个实施例中微型打印机驱动装置的结构示意图。
具体实施方式
为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的首选实施例。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本申请的公开内容更加透彻全面。
需要说明的是,当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件并与之结合为一体,或者可能同时存在居中元件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
微型打印机驱动程序,就是合理的包装这些指令,实现某些特定的功能(设置字体大小、页边距、行间距等等),并为上层应用提供相应的API(Application ProgrammingInterface,应用程序接口),使上层应用软件开发仅需调用这些API就可以完成打印机的控制,无需再深入了解厂商提供的指令集。由此可见,驱动程序的开发就成为了正确、便捷地使用微型打印机的关键。
传统的嵌入式软件开发中,通常有两种驱动开发方式:一是直接基于厂商提供的打印指令,从“零”开始开发驱动;二是直接调用厂商提供的驱动库(使用厂家开发好的驱动,不同MCU(Microcontroller Unit,微控制单元)、操作系统可能需要进行必要的适配)。前者需要去“消化”各类微型打印机的指令集;后者虽不需要“消化”各类微型打印机的指令集合,但难免需要阅读大量的API手册。无论以上哪种方式,驱动提供的API都是与具体微型打印机相关的,比如,不同厂商提供的API差异很大,则API手册不尽相同。这使得上层应用被绑定到了特定的打印机上,非常不利于产品的开发、升级和维护。例如,更换一个微型打印机型号,由于不同驱动提供的API并不相同,使得应用程序也要做出相应的修改(以使用新的API),更换微型打印机无异于重新开发,如此一来大大的耗费开发成本及资源。
此外,对于相同类型的嵌入式微型打印机而言,它们的指令仅有细微的差异,理论上完全没有必要重新开发整个驱动程序。在传统驱动的驱动开发方式中,针对这种差异较小的情况,可能会采用“复制”加“修改”的方式开发一个新驱动。这种方式虽然可以便捷的开发一个新驱动,但两份驱动中有大量相同的部分,使得代码极难维护,一个地方出现问题,可能要修改所有驱动中“复制”的部分。也即是说,传统的驱动开发方式中,缺少一种通用的管理方法,来管理那些可以复用的部分。
即,在传统技术中,针对微型打印机无统一API,不具有跨平台能力,升级成本高;更换不同的微型打印机需要重新开发整个驱动程序,熟悉所有指令集,开发效率低;缺少管理框架,大部分相同指令的代码无法有效复用,维护成本高;不同微型打印机都有一套API以及相应的API手册,学习难度高,使用困难。为此,本申请实施例提供了一种微型打印机驱动方法。
具体而言,打印机的指令类型大同小异,常规的有字体大小、页边距、行间距、下划线、字体类型等等;特殊的嵌入式微型打印机可能还有颜色设置、字体条纹设置等等。所谓的嵌入式就是根据特定应用场景,“使用不同的MCU操作不同的硬件外设”,在嵌入式微型打印机同样的适用。由于嵌入式微型打印机的指令集没有统一的标准,各厂商会自定义一些独有的指令。所以在编写嵌入式打印机驱动时,需要了解当前的MCU和具体打印机的指令集,如此才能编写正确的程序来操作嵌入式微型打印机。虽然市面上的微型打印机种类繁多,但它们所要完成的功能却是几乎一致的(“打印一些图文内容”),因而可以基于打印机功能定义一套“统一的API”。由于API是基于打印机功能定义的,因而与厂商、指令集无关,这就可以使上层应用与具体的打印机硬件分离,不与具体的打印机硬件绑定,便于应用程序的升级。
在一个实施例中,提供了一种微型打印机驱动方法,如图1所示,包括:
步骤S110,根据获取到的打印请求,在函数表中获取对应的操作函数;函数表为基于打印机的各操作进行定义得到的函数集合。
具体而言,获取到打印请求时,在函数表中进行查找,得到与该打印请求对应的操作函数。其中,函数表将打印机的多种操作集合在一个表中,每一项操作函数由对应的操作得到。由于打印机的种类繁多,不同打印机可能具有不同的驱动程序,本申请实施例为了保持不同打印机驱动依然实现同一套统一的API,经过转换,将与打印机相关的操作抽象得到函数表,函数表可由驱动来实现,基于此,所有与具体打印机相关操作的代码实现职责全部集中到驱动上;上层应用程序的实现直接基于函数表中的函数实现,使得应用程序与具体打印机无关。上层应用程序基于本申请实施例提供的接口或函数表进行编程即可,因而上层应用也与具体的打印机硬件无关,便于应用程序的复用和维护。
应该注意的是,函数表中定义了一系列可由驱动实现的函数。基于函数表,当应用程序调用API接口时,实际上是请求函数表中某一特定的函数,最终实际产生的效果,就是应用程序调用了驱动实现的某一函数。具体地,函数表中的各函数可根据打印机的基本操作进行定义得到;函数表可涵盖多种微型打印机的功能,满足应用程序的跨平台使用且降低其开发难度。
步骤S120,根据操作函数,在指令集中获取对应的打印操作指令;指令集包括模板指令集和预设指令集;模板指令集为基于基础打印指令构建得到的打印机指令表;预设指令集包括打印机的自定义指令。
具体而言,从函数表中获取到对应的操作函数后,需在指令集中获取操作函数对应的打印操作指令,以便指示对应的打印机执行相应的操作。指令集包括模板指令集和预设指令集;具体地,在打印机之间,往往具有很多相同的指令,只有极少数特殊指令存在差异;如果某个打印机驱动已经存在,新增一个类似打印机又要重新开发驱动,将极不利于驱动的复用。基于指令集的概念,本申请实施例将基础打印指令构建出一个打印机指令表,即模板指令集,该指令表可作为所有同类型打印机的标准指令模版,所有同类型打印机都会默认使用该模板指令。如果某一具体打印机包括自定义指令,该自定义指令与模版指令集中的指令不同,则可通过覆盖模版中的某个指令或添加指令的方式来得到预设指令集,进而满足不同类型的微型打印机,也便于打印机硬件的维护、升级及更换等。示例性地,实现某一打印机操作函数时,在向具体的打印机发送打印操作指令之前,需查询预设指令集中是否有该操作函数对应的指令,有则使用该指令控制打印机,无则使用模板指令集中的指令。应该注意的是,模板指令集包含大多数打印机都支持的指令,例如设定左右边界、设定行间距、换行、走纸、打印字符、打印条形码等;预设指令集则包含打印机支持的、区别于基础打印指令的自定义指令,例如打印上划线、打印曲线、横向放大、字符旋转打印等。
步骤S130,将打印操作指令传输给打印机。
具体而言,将获取到的打印操作指令传输给打印机;打印操作指令用于指示打印机执行相应的打印操作,以完成打印请求。基于上述步骤,上层的应用程序或外部设备只需发送打印请求以调用操作函数即可,无需关联底层打印机硬件的指令集;进一步地,基于操作函数、模板指令集和预设指令集来获取打印操作指令以控制对应的打印机,便于底层打印机硬件的匹配,降低维护成本。对于同一类型的打印机,可使用相同的模板指令集,而特殊指令可根据实际需要添加到预设指令集中。需要说明的是,本申请实施例可由设备处理器来执行,同时,本申请实施例可作为驱动程序来实现,便于推广应用。
基于此,对于同类型的打印机,可复用函数表中的函数、模板指令集等,实现跨平台使用且大大降低维护成本。具体地,本申请实施例为打印机定义了统一的API,使应用程序具备跨平台能力,不与具体硬件绑定。应用程序使用打印机变得简单,仅需掌握一套API的使用方法;底层打印机硬件可以便捷的更换,便于升级和维护;同时,根据实际情况,对于新类型的打印机,驱动开发可在已经具有驱动的基础上,则仅定义预设指令集即可。
在一个实施例中,根据操作函数,在指令集中获取对应的打印操作指令的步骤包括:
在预设指令集中查找操作函数对应的打印操作指令,若预设指令集未包括打印操作指令,则在模板指令集中获取打印操作指令。
具体而言,预设指令集的优先级可高于模板指令集。在获取到操作函数后,可优先在指令集中查找是否有对应的打印操作指令:若有,则将对应的打印操作指令发送给打印机;若无,则在模板指令集中获取对应的打印操作指令。基于此,本申请实施例可优先查找到打印机的自定义指令以执行相应的打印操作,提高打印效率。
在一个实施例中,如图2所示,将打印操作指令传输给打印机的步骤包括:
步骤S132,根据打印机的通信方式,确认对应的指令发送器;
步骤S136,向指令发送器发送传输指令;传输指令用于指示指令发送器按照通信方式向打印机传输打印操作指令。
具体而言,可通过不同的指令发送器来与打印机进行通信,满足打印机的通信需求。具体地,打印机使用的通信方式可不相同,针对不同的通信方式,可分别设置对应的指令发送器。根据底层打印机的通信方式确认对应的指令发送器,并通过该指令发送器将打印操作指令发送给打印机。需要说明的是,打印机可支持多种通信方式,但指令集是完全相同的;本申请实施例可将指令的发送部分抽象出来,针对不同的通信方式,得到不同的指令发送器,使得本申请实施例可不受通信方式影响,进一步提高本申请实施例的复用程度,降低维护成本。示例性地,不同打印机的通信接口可能不同,只需要通过相应的指令发送器来实现传输即可;而同一通信接口的打印机,则可复用指令发送器。本申请实施例将指令分为预设指令和模板指令,并采用多种指令发送器与打印机进行通信,使本申请实施例的驱动可得到最大限度的复用。
在一个实施例中,打印请求为应用程序发起的请求。
具体而言,应用程序可发起打印请求并传输到驱动中,以在函数表中调用相应的操作函数。基于此,应用程序可通过调用函数表中的函数来控制具体打印机硬件,完成相关的打印任务。
在一个实施例中,根据获取到的打印请求,在函数表中获取对应的操作函数的步骤之前,还包括:
根据应用程序传输的初始化函数,执行打印机的硬件初始化并创建打印机对象、向打印机对象传入函数表;
在完成打印机对象的创建时,传输打印机的引用句柄给应用程序。
具体而言,在获取打印请求之前,可先根据获取到的初始化函数进行打印机硬件初始化、建立打印机对象并向打印机对象传入函数表。基于此,驱动可为应用程序建立打印基础,便于应用程序调用到对应的打印机对象。进一步地,在创建成功后,向应用程序反馈引用句柄;应用程序可通过该引用句柄来调用对应的打印机对象,进而实现对打印机的操控。本申请实施例可为应用程序完成打印机的初始化、对象创建及句柄反馈等,进一步降低应用程序的维护成本。
在一个实施例中,打印请求为应用程序根据引用句柄生成的请求。
具体而言,应用程序可根据得到的引用句柄来生成打印请求,进一步简化应用程序的调用步骤,且便于应用程序跨平台使用。
在一个实施例中,操作函数为打印机对象根据打印请求、在函数表中查找得到。
具体而言,应用程序可将打印请求发送给打印机对象,以调用到对应的操作函数,并由打印机对象将该操作函数发送给驱动进行实现。
在一个实施例中,将打印操作指令传输给打印机的步骤之后,还包括:
获取打印机的处理结果;处理结果为打印机执行打印操作指令得到;
将处理结果传输给应用程序。
具体而言,本申请实施例可将打印机执行打印操作指令得到的处理结果转发给应用程序,满足应用程序的功能需求。
基于本申请实施例,如图3所示,设备控制微型打印机进行打印的过程可包括以下元素:
1)Application(应用程序):应用程序是“打印机”的使用者,实现具体的业务逻辑,构造打印内容等,比如:出租车发票打印。
2)API:应用程序可以直接使用的API;应用程序通过调用API接口来控制具体打印机硬件,完成相关的打印任务。
3)Abstract Function Table:抽象函数表,对打印机功能的抽象,属于打印机对象。函数表中定义了一系列需要由具体驱动实现的函数。实现这些函数也是驱动的重要职责。当应用程序调用API接口时,实际上是请求函数表中某一特定的函数,最终实际产生的效果,就是应用程序调用了驱动实现的某一函数。
4)Function Table:驱动实现的函数表。其中的各个函数全部是依照抽象函数表中的功能定义实现的。
5)Command Set:指令集,包括预设指令集和模板指令集。模板指令是大多数打印机都支持的指令,预设指令是仅仅某些打印机支持的指令。
6)Command Sender:指令发送器,用于将指令发送到打印机。不同打印机的通信接口可能不同,只需要实现相应的指令发送器即可,同一通信接口的打印机,指令发送器可以被复用。
7)Printer:具体的打印机硬件。在实际中,打印机型号可能多种多样,比如型号A、B、C等等。
在一个示例中,如图4所示,可包括步骤:
1)打印机应用程序调用驱动程序的初始化函数printer_init();驱动会执行打印机硬件初始化操作。
2)驱动调用printer_creat(func_table,……)来创建一个“打印机对象”(软件中的抽象打印机);创建打印机对象时,需传入驱动要实现的Function Table,应用程序API将使用该Function Table。
3)创建成功后,会返回打印机的引用句柄给应用程序;引用句柄相当于对象的引用,包含打印机对象的所有信息;应用程序即可通过该句柄操作打印机。例如,在应用程序调用某一API时,需要传入该句柄,以便通过该句柄找到Function Table,然后调用其中的函数完成特定的功能。
在另一个示例中,如图5所示,打印机调用一次完整的API的步骤可包括:
1)打印机应用程序调用printer_funcA(handle,…)时,即发起一次请求,请求打印机执行某一功能。handle为打印机的引用句柄。
2)从Function table中找到相应功能的操作函数的接口;操作函数是由具体驱动实现的,因而该调用请求会直接传递到驱动中。
3)command_find()可根据执行的操作,找到相应的打印操作指令。在寻找打印操作指令过程中,会先找特殊指令集,再找模板指令集。
4)找到打印操作指令后返回给驱动。
5)继续调用command_send(),将打印操作指令传递给指令发送器。
6)指令发送器发送打印操作指令给具体打印机,打印机执行相关操作。
7)打印机执行完毕后返回处理结果。
8)处理结果继续按原路返回。
9)处理结果继续按原路返回。
10)处理结果按原路返回给应用程序,一次操作结束。
在一个实施例中,采用UML(Unified Modeling Language,统一建模语言)实现微型打印机驱动方法可如图6所示,具体地:
1)打印机驱动(printer_driver)的主要职责就是实现抽象函数表中定义的函数。
2)打印机驱动主要依赖于两个类:command_set和command_sender。
3)command_set是打印机的指令集,包括预设指令集(Special command)和模板指令集(template command)组成;
4)command_sender是指令发送器,用于通过某种通信方式将指令发送给打印机设备。
5)不同的指令发送器可以实现不同的通信方式(A、B、C)。
在一个示例中,如图7所示,函数表可包括多个型号的打印机的操作函数。
在一个示例中,如图8所示,函数表可包括一种打印机的多种操作函数。
在一个实施例中,提供了一种微型打印机驱动装置,如图9所示,包括:
函数获取模块,用于根据获取到的打印请求,在函数表中获取对应的操作函数;函数表为基于打印机的各操作进行定义得到的函数集合。
指令获取模块,用于根据操作函数,在指令集中获取对应的打印操作指令;指令集包括模板指令集和预设指令集;模板指令集为基于基础打印指令构建得到的打印机指令表;预设指令集包括打印机的自定义指令。
指令传输模块,用于将打印操作指令传输给打印机。
在一个实施例中,指令获取模块包括:
顺序查找单元,用于在预设指令集中查找操作函数对应的打印操作指令,若预设指令集未包括打印操作指令,则在模板指令集中获取打印操作指令。
在一个实施例中,指令传输模块包括:
发送器确认单元,用于根据打印机的通信方式,确认对应的指令发送器。
发送器指示单元,用于向指令发送器发送传输指令;传输指令用于指示指令发送器按照通信方式向打印机传输打印操作指令。
在一个实施例中,微型打印机驱动装置还包括:
打印机对象创建模块,用于根据应用程序传输的初始化函数,执行打印机的硬件初始化并创建打印机对象、向打印机对象传入函数表。
句柄反馈模块,用于在完成打印机对象的创建时,传输打印机的引用句柄给应用程序。
在一个实施例中,微型打印机驱动装置还包括:
结果获取模块,用于获取打印机的处理结果;处理结果为打印机执行打印操作指令得到。
结果传输模块,用于将处理结果传输给应用程序。
关于微型打印机驱动装置的具体限定可以参见上文中对于微型打印机驱动方法的限定,在此不再赘述。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。上述微型打印机驱动装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种设备,包括处理器和连接处理器的微型打印机。处理器用于实现如上述的微型打印机驱动方法。
在一个实施例中,处理器实现如下步骤:
根据获取到的打印请求,在函数表中获取对应的操作函数;函数表为基于打印机的各操作进行定义得到的函数集合;
根据操作函数,在指令集中获取对应的打印操作指令;指令集包括模板指令集和预设指令集;模板指令集为基于基础打印指令构建得到的打印机指令表;预设指令集包括打印机的自定义指令;
将打印操作指令传输给打印机。
关于处理器可实现的步骤的具体限定可以参见上文中对于微型打印机驱动方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的微型打印机驱动方法。
在一个实施例中,程序被处理器执行时实现如下步骤:
根据获取到的打印请求,在函数表中获取对应的操作函数;函数表为基于打印机的各操作进行定义得到的函数集合;
根据操作函数,在指令集中获取对应的打印操作指令;指令集包括模板指令集和预设指令集;模板指令集为基于基础打印指令构建得到的打印机指令表;预设指令集包括打印机的自定义指令;
将打印操作指令传输给打印机。
关于程序的具体限定可以参见上文中对于微型打印机驱动方法的限定,在此不再赘述。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (9)
1.一种微型打印机驱动方法,其特征在于,包括:
根据获取到的打印请求,在函数表中获取对应的操作函数;所述函数表为基于打印机的各操作进行定义得到的函数集合;
根据所述操作函数,在指令集中获取对应的打印操作指令;所述指令集包括模板指令集和预设指令集;所述模板指令集为基于基础打印指令构建得到的打印机指令表;所述预设指令集包括所述打印机的自定义指令;其中,在所述预设指令集中查找所述操作函数对应的打印操作指令,若所述预设指令集未包括所述打印操作指令,则在所述模板指令集中获取所述打印操作指令;若所述自定义指令与所述模板指令集中的指令不同,则通过覆盖所述模板指令集中的某个指令或添加指令的方式来得到所述预设指令集;
将所述打印操作指令传输给所述打印机。
2.根据权利要求1所述的微型打印机驱动方法,其特征在于,所述将所述打印操作指令传输给所述打印机的步骤包括:
根据所述打印机的通信方式,确认对应的指令发送器;
向所述指令发送器发送传输指令;所述传输指令用于指示所述指令发送器按照所述通信方式向所述打印机传输所述打印操作指令。
3.根据权利要求1或2任一项所述的微型打印机驱动方法,其特征在于,所述打印请求为应用程序发起的请求。
4.根据权利要求3所述的微型打印机驱动方法,其特征在于,所述根据获取到的打印请求,在函数表中获取对应的操作函数的步骤之前,还包括:
根据所述应用程序传输的初始化函数,执行所述打印机的硬件初始化并创建打印机对象、向所述打印机对象传入所述函数表;
在完成所述打印机对象的创建时,传输所述打印机的引用句柄给所述应用程序。
5.根据权利要求4所述的微型打印机驱动方法,其特征在于,
所述打印请求为所述应用程序根据所述引用句柄生成的请求;
所述操作函数为所述打印机对象根据所述打印请求、在所述函数表中查找得到。
6.根据权利要求3所述的微型打印机驱动方法,其特征在于,所述将所述打印操作指令传输给所述打印机的步骤之后,还包括:
获取所述打印机的处理结果;所述处理结果为所述打印机执行所述打印操作指令得到;
将所述处理结果传输给所述应用程序。
7.一种微型打印机驱动装置,其特征在于,包括:
函数获取模块,用于根据获取到的打印请求,在函数表中获取对应的操作函数;所述函数表为基于打印机的各操作进行定义得到的函数集合;
指令获取模块,用于根据所述操作函数,在指令集中获取对应的打印操作指令;所述指令集包括模板指令集和预设指令集;所述模板指令集为基于基础打印指令构建得到的打印机指令表;所述预设指令集包括所述打印机的自定义指令;其中,在所述预设指令集中查找所述操作函数对应的打印操作指令,若所述预设指令集未包括所述打印操作指令,则在所述模板指令集中获取所述打印操作指令;若所述自定义指令与所述模板指令集中的指令不同,则通过覆盖所述模板指令集中的某个指令或添加指令的方式来得到所述预设指令集;指令传输模块,用于将所述打印操作指令传输给所述打印机。
8.一种设备,其特征在于,包括处理器和连接所述处理器的微型打印机;
所述处理器用于实现如权利要求1至6任意一项所述的微型打印机驱动方法。
9.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6任意一项所述的微型打印机驱动方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010140114.1A CN111352596B (zh) | 2020-03-03 | 2020-03-03 | 微型打印机驱动方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010140114.1A CN111352596B (zh) | 2020-03-03 | 2020-03-03 | 微型打印机驱动方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352596A CN111352596A (zh) | 2020-06-30 |
CN111352596B true CN111352596B (zh) | 2024-03-29 |
Family
ID=71192538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010140114.1A Active CN111352596B (zh) | 2020-03-03 | 2020-03-03 | 微型打印机驱动方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111352596B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112558892B (zh) * | 2020-12-22 | 2022-06-14 | 厦门喵宝科技有限公司 | 一种便携式智能打印装置及控制方法 |
CN113190187A (zh) * | 2021-04-28 | 2021-07-30 | 杭州和利时自动化有限公司 | 一种打印方法、装置、电子设备和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6847466B1 (en) * | 2000-04-27 | 2005-01-25 | Hewlett-Packard Development Company, L.P. | Printing method |
CN103164207A (zh) * | 2011-12-16 | 2013-06-19 | 深圳市快播科技有限公司 | 基于安卓系统的跨硬件平台的应用程序开发方法和系统 |
CN110008038A (zh) * | 2019-03-07 | 2019-07-12 | 海尔优家智能科技(北京)有限公司 | 控制家电设备的方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4683054B2 (ja) * | 2008-01-30 | 2011-05-11 | ブラザー工業株式会社 | プログラム、情報処理装置、表示制御方法 |
JP5424134B2 (ja) * | 2011-10-14 | 2014-02-26 | コニカミノルタ株式会社 | 情報処理装置、プリンタドライバ及び印刷設定方法並びにデータ構造体 |
-
2020
- 2020-03-03 CN CN202010140114.1A patent/CN111352596B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6847466B1 (en) * | 2000-04-27 | 2005-01-25 | Hewlett-Packard Development Company, L.P. | Printing method |
CN103164207A (zh) * | 2011-12-16 | 2013-06-19 | 深圳市快播科技有限公司 | 基于安卓系统的跨硬件平台的应用程序开发方法和系统 |
CN110008038A (zh) * | 2019-03-07 | 2019-07-12 | 海尔优家智能科技(北京)有限公司 | 控制家电设备的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111352596A (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7228314B2 (en) | Apparatus and method for controlling user interface | |
CN111352596B (zh) | 微型打印机驱动方法、装置、设备和存储介质 | |
CN100472425C (zh) | 信息处理装置和方法 | |
CN100407127C (zh) | 能够定制设备驱动程序的信息处理装置、方法 | |
US20030063305A1 (en) | Method and system for saving and restoring printer control panel settings | |
CN104090749A (zh) | 一种WinCE产品界面主题更新变换处理方法及系统 | |
US7246224B2 (en) | System and method to enable platform personality migration | |
US20120054607A1 (en) | Device and help server | |
CN103761088A (zh) | 一种适用于arm架构移动设备的多操作系统切换方法 | |
CN100580646C (zh) | 图像处理设备、信息处理设备和控制方法 | |
CN110109671B (zh) | 一种webpack标签尺寸样式转换方法及装置 | |
JP2016058006A (ja) | 情報処理装置及びプログラム | |
US20060184924A1 (en) | Intelligent platform management interface firmware architecture and method of building the same | |
US6999188B1 (en) | Dynamically configurable printer and method of use thereof | |
US10540151B1 (en) | Graphical customization of a firmware-provided user interface (UI) | |
KR102193821B1 (ko) | 기록 장치 및 데이터 생성 방법 | |
US20160012023A1 (en) | Self-Referencing of Running Script Elements in Asynchronously Loaded DOM Modules | |
JP3733290B2 (ja) | 印刷制御装置および印刷制御方法および記憶媒体 | |
JP2009211713A (ja) | ユーザインタフェース制御装置および方法 | |
US20040148368A1 (en) | Printer with access to remote file system | |
US6715072B1 (en) | System for automatically reading stored rewriting data and replacing system generated setup data by the rewriting data before system initialization | |
JP2006209195A (ja) | 印刷制御装置、印刷制御方法、及び記憶媒体 | |
US8055083B2 (en) | Portable bitmap rendering systems and methods | |
US20230367573A1 (en) | Information processing apparatus, settings applying method, and medium | |
KR100594732B1 (ko) | 사용자들간에 일괄설정을 공용화할 수 있는 네트워크프린팅 시스템 및 그의 네트워크 프린팅 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 510000 room 306, 3rd floor, 43 Sicheng Road, software park, Tianhe District, Guangzhou City, Guangdong Province Applicant after: GUANGZHOU ZHIYUAN ELECTRONICS Co.,Ltd. Address before: 510665 room 517, 1023 Gaopu Road, Tianhe Software Park, Tianhe District, Guangzhou City, Guangdong Province Applicant before: GUANGZHOU ZHIYUAN ELECTRONICS Co.,Ltd. Country or region before: China |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |