一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

虚拟打印设备进行打印的方法、系统、设备和存储介质与流程

2022-02-19 12:33:33 来源:中国专利 TAG:


1.本发明属于计算机技术领域,具体涉及一种虚拟打印设备进行打印的方法、系统、设备和存储介质。


背景技术:

2.智能终端的应用越来越广泛,目前主要使用的开源操作系统有android和ubuntu。其中,android系统在民用移动领域应用广泛,有丰富的接口以及海量的应用,android系统已经成为当今市场上占主导地位的系统。
3.因android系统支持多种通信协议,不同方案商的打印机可通过通信协议与android系统通信,应用调用对应的标准android通信接口把打印数据发送到打印机实现打印。而打印驱动模块一般基于esc/pos协议实现打印,所以市场上基于android系统开发的打印机应用主要区别在于打印驱动模块通信协议的不同,如usb打印、蓝牙打印或tcp/ip打印。
4.现有技术中,终端应用(应用层)从android系统调用usb通信接口,将打印数据通过usb接口发送给支持usb协议的打印机进行打印(打印机驱动);也即usb打印应用,只适用于支持usb协议的android终端打印机。如果要实现usb打印应用与非usb打印机通信,只有通过改变打印应用,或者改变usb打印机的驱动。
5.换言之,基于android系统开发的usb打印机应用只适用于支持usb协议的android终端打印机。因此,针对不支持usb通信协议的打印机,如何使通过基于android系统开发的usb打印机应用实现打印成为目前亟需解决的问题之一。


技术实现要素:

6.为解决现有技术中基于android系统开发的usb打印机应用只适用于支持usb协议的android终端打印机,要实现usb打印应用与非usb打印机通信,只有通过改变打印应用,或者改变usb打印机的驱动的问题,本发明提供了一种虚拟打印设备进行打印的方法、系统、设备和存储介质,通过对智能终端的系统进行研发,实现非usb打印机加载虚拟usb打印机模块,从而实现产品在不修改上层应用和打印机驱动情况下,使不支持usb通信协议的打印机能通过基于android系统开发的usb打印机应用实现打印。
7.本发明采用以下技术方案实现:
8.一种虚拟打印设备进行打印的方法,应用于不支持usb通信协议的打印机,即非usb打印设备,实现不支持usb通信协议的打印设备能通过基于android系统开发的usb打印机应用实现打印,该虚拟打印设备进行打印的方法,包括:
9.开机加载虚拟usb打印机模块,将非usb打印设备构建为虚拟usb打印机;
10.获取usb打印机设备检测请求;
11.响应所述usb打印机设备检测请求,将所述虚拟usb打印机信息反馈给usb打印机应用;
12.建立与所述usb打印机应用的连接并进行数据传输;
13.接收usb打印机应用发送的打印数据,由非usb打印设备进行打印。
14.作为本发明的进一步方案,所述虚拟usb打印机模块由一个自定义服务和一个自定义usb设备类组成,在开机过程中用于初始化usb服务,在usb服务处于正常运行状态时,按照usb服务添加新设备流程实例化一个自定义usb设备类,实现虚拟一台usb打印机,将非usb打印设备构建为虚拟usb打印机。
15.进一步的,所述usb服务添加新设备流程为将不同类型的usb设备有不同的属性值添加到设备列表的流程,其中,自定义usb设备类的属性值为参考usb打印机模型填充一个usb打印设备所带的属性值。
16.进一步的,所述自定义usb设备类的属性值包括设备描述符、端点描述符、厂商id或设备版本号。
17.作为本发明的进一步方案,所述usb打印机设备检测请求由所述usb打印机应用调用安卓标准usb通信接口与usb服务模块交互,以发出获取usb打印机设备的请求,用于获取android设备上usb设备的数量。
18.进一步的,响应所述usb打印机设备检测请求,为加载虚拟usb打印机模块的非usb打印设备构建为虚拟usb打印机后,所述usb打印机应用获取到该虚拟usb打印机设备时默认获取到一台usb打印机。
19.进一步的,虚拟usb打印机通过usb通信协议与所述usb打印机应用匹配。
20.进一步的,所述接收usb打印机应用发送的打印数据,由非usb打印设备进行打印时,还包括:
21.虚拟usb打印机设备与非usb打印设备的打印模块初次连接时发送握手数据;
22.通过不同通信协议握手的差异区分当前打印模块的通信协议类型;
23.将usb协议转换为当前非usb打印设备能识别的通信协议,并将打印数据发送至非usb打印设备进行打印。
24.本发明还包括一种虚拟打印设备进行打印的系统,所述虚拟打印设备进行打印的系统采用前述虚拟打印设备进行打印的方法实现不支持usb通信协议的打印设备能通过基于android系统开发的usb打印机应用实现打印;所述虚拟打印设备进行打印的系统包括虚拟usb打印机模块、usb服务模块、转换通信模块以及打印驱动模块。
25.所述虚拟usb打印机模块用于非usb打印设备开机时加载,将非usb打印设备构建为虚拟usb打印机。所述usb服务模块用于通过安卓标准usb通信接口与usb打印机应用交互,以发出所述usb打印机应用的获取usb打印机设备的请求,在检测到虚拟usb打印机时将信息反馈给所述usb打印机应用,还用于将usb打印机应用的数据传输至虚拟usb打印机模块。
26.所述转换通信模块用于将usb协议转换为当前非usb打印设备能识别的通信协议,用于将数据传输至打印驱动模块。所述打印驱动模块,用于接收转换通信模块传输的数据,驱动非usb打印设备进行打印。
27.本发明还包括一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现虚拟打印设备进行打印的方法的步骤。
28.本发明还包括一种存储介质,存储有计算机程序,所述计算机程序被处理器执行
时实现虚拟打印设备进行打印的方法的步骤。
29.本发明提供的技术方案,具有如下有益效果:
30.本发明能够在不支持usb通信协议的打印设备上通过加载虚拟usb打印机模块构建一台虚拟usb打印机,系统默认检测到usb打印机,上层应用可通过标准接口连接虚拟usb打印机进行通信,利用转换通信模块,可剥离底层驱动的通信协议,usb打印机应用无需关心打印驱动协议,全部交由转换通信模块处理进行打印。在客户已开发完标准安卓usb打印机应用基础上,通过本发明,当切换到不同协议的打印机方案时,无需修改应用,节省客户开发时间;打印模块支持的通信协议与硬件密切相关,在不修改硬件和打印驱动协议的情况下,通过本发明,实现上层应用对打印驱动的通信,大大减少硬件切换和驱动开发成本;本发明符合代码设计开闭原则,不需要对已设计完成的应用层和驱动层修改,系统通过扩展功能模块完成。
附图说明
31.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
32.图1为本发明一个实施例中一种虚拟打印设备进行打印的方法的流程图。
33.图2为本发明一个实施例中虚拟打印设备进行打印系统的系统框图。
34.图3为本发明一个实施例中虚拟打印设备进行打印系统的打印流程图。
具体实施方式
35.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
36.本发明提供的一种虚拟打印设备进行打印的方法、系统、设备和存储介质,在针对基于android系统开发的usb打印机应用只适用于支持usb协议的android终端打印机,要实现usb打印应用与非usb打印机通信,只有通过改变打印应用,或者改变usb打印机的驱动的问题,通过对智能终端的系统进行研发,实现非usb打印机加载虚拟usb打印机模块11,从而实现产品在不修改上层应用和打印机驱动情况下,使不支持usb通信协议的打印机能通过基于android系统开发的usb打印机应用实现打印。
37.在本发明的一个实施例中,提供了一种虚拟打印设备进行打印的系统,该系统应用于不支持usb通信协议的打印机,即非usb打印设备,实现不支持usb通信协议的打印设备能通过基于android系统开发的usb打印机应用实现打印。参见图2和图3所示,所述虚拟打印设备进行打印的系统包括虚拟usb打印机模块11、usb服务模块12、转换通信模块13以及打印驱动模块14。
38.所述虚拟usb打印机模块11用于非usb打印设备开机时加载,将非usb打印设备构建为虚拟usb打印机。
39.所述usb服务模块12用于通过安卓标准usb通信接口与usb打印机应用交互,以发出所述usb打印机应用的获取usb打印机设备的请求,在检测到虚拟usb打印机时将信息反馈给所述usb打印机应用,还用于将usb打印机应用的数据传输至虚拟usb打印机模块11。
40.所述转换通信模块13用于将usb协议转换为当前非usb打印设备能识别的通信协议,用于将数据传输至打印驱动模块14。
41.所述打印驱动模块14,用于接收转换通信模块13传输的数据,驱动非usb打印设备进行打印。
42.使用该系统进行打印操作时,在非usb打印设备开机时加载虚拟usb打印机模块11,形成一台虚拟usb打印机;当usb打印机应用与usb服务模块12交互后,通过usb服务模块12进行获取usb打印机设备时,usb服务模块12检测到虚拟usb打印机,返回虚拟usb打印机设备给usb打印机应用,usb打印机应用获取虚拟usb打印机设备成功,允许往虚拟usb打印机发送打印数据,虚拟usb打印机模块11接收到打印数据,启动转换通信模块13,将usb协议转换为当前智能终端打印机能识别的通信协议,将打印数据发往打印驱动模块14,打印驱动模块14处理数据,实现打印。
43.本发明的虚拟打印设备进行打印的系统,实现了一种虚拟usb打印机模块11,系统默认检测到usb打印机,上层应用可通过标准接口连接虚拟usb打印机进行通信,也实现了一种转换通信模块13,可剥离底层驱动的通信协议,usb打印机应用无需关心打印驱动协议,全部交由转换通信模块13处理。
44.参加图1所示,在本发明的一个实施例中,还提供了一种虚拟打印设备进行打印的方法,应用于不支持usb通信协议的打印机,即非usb打印设备,实现不支持usb通信协议的打印设备能通过基于android系统开发的usb打印机应用实现打印,该虚拟打印设备进行打印的方法,包括:
45.s1、开机加载虚拟usb打印机模块11,将非usb打印设备构建为虚拟usb打印机。
46.在本实施例中,非usb打印设备在开机时加载虚拟usb打印机模块11后形成一台虚拟usb打印机。可以被usb打印机应用识别以便建立通信。其中,虚拟usb打印机模块11由一个自定义服务和一个自定义usb设备类组成,在开机过程中用于初始化usb服务,在usb服务处于正常运行状态时,按照usb服务添加新设备流程实例化一个自定义usb设备类,实现虚拟一台usb打印机,将非usb打印设备构建为虚拟usb打印机。
47.在本实施例中,所述usb服务添加新设备流程为将不同类型的usb设备有不同的属性值添加到设备列表的流程,其中,自定义usb设备类的属性值为参考usb打印机模型填充一个usb打印设备所带的属性值。其中,所述自定义usb设备类的属性值包括设备描述符、端点描述符、厂商id或设备版本号。
48.具体的,虚拟usb打印机模块11由一个自定义服务和一个自定义usb设备类组成。在安卓系统开机过程会初始化usb服务,设计一个监听usb服务的服务,用于监听usb服务处于正常运行状态时,按照usb服务添加新设备流程实例化一个自定义usb设备类,由此实现虚拟一台usb打印机。usb服务添加新设备流程,实际是把属性值添加到设备列表的流程,对于一个usb设备究竟是u盘或是键盘,usb组织已早有一套标准的协议规范,不同类型的usb设备有不同的属性值,自定义usb设备类参考usb打印机模型填充一个usb打印设备所带的属性值,比如设备描述符填写打印机属性,端点描述符设置传输包长,还有厂商id,设备版本号等等属性
49.usb打印机应用是通过usb服务模块12获取安卓设备上usb设备的数量,那么加载虚拟usb打印机模块11后,usb打印机应用获取usb设备时默认获取到一台usb打印机。而usb
打印应用第一步往往是获取并连接usb打印机,是必要的步骤,本实施例的出发点是令打印模块不是usb打印机的产品在usb打印应用上实现打印,虚拟一台usb打印机的作用是提供一台usb打印机给usb打印应用连接并进行数据传输。若不加载虚拟usb打印机模块11,usb打印应用因在产品上获取不到usb打印机设备而无法使用。
50.s2、获取usb打印机设备检测请求。
51.在本实施例中,检测请求是由usb打印机应用调用安卓标准usb通信接口与usb服务模块12交互,获取usb打印机设备。在本实施例中,所述usb打印机设备检测请求由所述usb打印机应用调用安卓标准usb通信接口与usb服务模块12交互,以发出获取usb打印机设备的请求,用于获取android设备上usb设备的数量。
52.s3、响应所述usb打印机设备检测请求,将所述虚拟usb打印机信息反馈给usb打印机应用。
53.在本实施例中,响应所述usb打印机设备检测请求,为加载虚拟usb打印机模块11的非usb打印设备构建为虚拟usb打印机后,所述usb打印机应用获取到该虚拟usb打印机设备时默认获取到一台usb打印机。
54.当usb服务模块12检测到虚拟usb打印机,返回虚拟usb打印机设备给usb打印机应用。
55.s4、建立与所述usb打印机应用的连接并进行数据传输。
56.在本实施例中,虚拟usb打印机通过usb通信协议与所述usb打印机应用匹配。usb打印机应用获取虚拟usb打印机设备成功,允许往虚拟usb打印机发送打印数据。
57.s5、接收usb打印机应用发送的打印数据,由非usb打印设备进行打印。
58.在本实施例中,所述接收usb打印机应用发送的打印数据,由非usb打印设备进行打印时,还包括:虚拟usb打印机设备与非usb打印设备的打印模块初次连接时发送握手数据;通过不同通信协议握手的差异区分当前打印模块的通信协议类型;将usb协议转换为当前非usb打印设备能识别的通信协议,并将打印数据发送至非usb打印设备进行打印。
59.在打印时,虚拟usb打印机模块11接收到打印数据,启动转换通信模块13,即设计一个中间层,将usb协议转换为当前智能终端打印机能识别的通信协议,已知打印模块用到的通信协议至少是半双工方式,即双向通信,无论是串口、蓝牙还是网口等协议,设备与打印模块初次连接时会发送握手数据,可通过不同通信协议握手的差异区分当前打印模块使用哪种通信协议,如此将usb数据转换为相应协议的数据,并将数据发往打印驱动模块14,打印驱动模块14处理数据,实现打印。
60.本发明能够在不支持usb通信协议的打印设备上通过加载虚拟usb打印机模块11构建一台虚拟usb打印机,系统默认检测到usb打印机,上层应用可通过标准接口连接虚拟usb打印机进行通信,利用转换通信模块13,可剥离底层驱动的通信协议,usb打印机应用无需关心打印驱动协议,全部交由转换通信模块13处理进行打印。在客户已开发完标准安卓usb打印机应用基础上,通过本发明,当切换到不同协议的打印机方案时,无需修改应用,节省客户开发时间;打印模块支持的通信协议与硬件密切相关,在不修改硬件和打印驱动协议的情况下,通过本发明,实现上层应用对打印驱动的通信,大大减少硬件切换和驱动开发成本;本发明符合代码设计开闭原则,不需要对已设计完成的应用层和驱动层修改,系统通过扩展功能模块完成。
61.在本发明的一个实施例中还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述方法实施例中的步骤:
62.开机加载虚拟usb打印机模块11,将非usb打印设备构建为虚拟usb打印机;
63.获取usb打印机设备检测请求;
64.响应所述usb打印机设备检测请求,将所述虚拟usb打印机信息反馈给usb打印机应用;
65.建立与所述usb打印机应用的连接并进行数据传输;
66.接收usb打印机应用发送的打印数据,由非usb打印设备进行打印。
67.在本发明的实施例中还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤:
68.开机加载虚拟usb打印机模块11,将非usb打印设备构建为虚拟usb打印机;
69.获取usb打印机设备检测请求;
70.响应所述usb打印机设备检测请求,将所述虚拟usb打印机信息反馈给usb打印机应用;
71.建立与所述usb打印机应用的连接并进行数据传输;
72.接收usb打印机应用发送的打印数据,由非usb打印设备进行打印。
73.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。
74.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献