CN110109850B - 基于sane协议框架下扫描设备的搜索方法及装置 - Google Patents
基于sane协议框架下扫描设备的搜索方法及装置 Download PDFInfo
- Publication number
- CN110109850B CN110109850B CN201910422825.5A CN201910422825A CN110109850B CN 110109850 B CN110109850 B CN 110109850B CN 201910422825 A CN201910422825 A CN 201910422825A CN 110109850 B CN110109850 B CN 110109850B
- Authority
- CN
- China
- Prior art keywords
- scanning
- sane
- equipment
- communication interface
- software
- 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 55
- 238000004891 communication Methods 0.000 claims abstract description 103
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 235000013421 Kaempferia galanga Nutrition 0.000 description 1
- 244000062241 Kaempferia galanga Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于SANE协议框架下扫描设备的搜索方法、装置、存储介质、计算机设备、扫描设备及扫描系统,该方法包括:接收SANE扫描软件的扫描设备查找请求,其中,SANE扫描软件是基于SANE协议框架下开发的扫描应用软件,并且SANE扫描软件在进行扫描作业时使用SANE协议框架底层中的扫描驱动;根据扫描设备查找请求,直接查询安装SANE扫描软件的终端设备的通信接口是否连接有扫描设备;若有,则将与终端设备配置的扫描驱动相匹配的扫描设备确定为目标扫描设备。上述方法可以提高扫描设备的搜索效率。
Description
技术领域
本发明涉及扫描技术领域,具体涉及基于SANE协议框架下扫描设备的搜索方法及装置。
背景技术
在Linux系统下,SANE(ScannerAccess Now Easy)为通用的扫描接口,扫描设备厂商提供SANE Driver,实现SANEAPI接口与扫描设备之间的对接,扫描应用软件可以直接调用SANEAPI接口获取扫描图像。现有技术中,基于SANE协议框架下搜索可用的扫描设备通常都是先通过sane_get_devices()遍历轮询当前计算机中安装的所有扫描驱动,然后基于获取到的扫描驱动再确认是否有支持的扫描设备接入,最后再进行后续的扫描操作,然而,上述方式在安装了多个SANE后端扫描驱动的情况下,由于需要通过sane_get_devices()遍历轮询当前计算机中安装的所有扫描驱动,因此对扫描设备的搜索会非常慢,造成效率低下,影响用户的使用体验,尤其是有些扫描设备基于网络通信与计算机中后端扫描驱动连接时,这种问题就更加突出。
发明内容
本发明实施例提供一种基于SANE协议框架下扫描设备的搜索方法、装置、存储介质、计算机设备、扫描设备及扫描系统,能够解决对扫描设备的搜索效率低的问题。
第一方面,本发明实施例提供了一种基于SANE协议框架下扫描设备的搜索方法,所述方法包括:接收SANE扫描软件的扫描设备查找请求,其中,所述SANE扫描软件是基于SANE协议框架下开发的扫描应用软件,并且所述SANE扫描软件在进行扫描作业时使用所述SANE协议框架底层中的扫描驱动;根据所述扫描设备查找请求,直接查询安装所述SANE扫描软件的终端设备的通信接口是否连接有扫描设备;若有,则将与所述终端设备配置的扫描驱动相匹配的扫描设备确定为目标扫描设备。
第二方面,本发明实施例提供了一种基于SANE协议框架下扫描设备的搜索装置,其特征在于,包括:接收模块,接收SANE扫描软件的扫描设备查找请求,其中,所述SANE扫描软件是基于SANE协议框架下开发的扫描应用软件,并且所述SANE扫描软件在进行扫描作业时使用所述SANE协议框架底层中的扫描驱动;查询模块,用于根据所述扫描设备查找请求,直接查询安装所述SANE扫描软件的终端设备的通信接口是否连接有扫描设备;及确定模块,用于当存在与安装所述SANE扫描软件的终端设备的通信接口连接的扫描设备时,则将与配置的扫描驱动相匹配的扫描设备确定为目标扫描设备。
第三方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述方法。
第四方面,本发明实施例提供了一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时实现上述方法的步骤。
第五方面,本发明实施例提供了一种扫描设备,包括与上述计算机设备连接的通讯接口以及与所述通讯接口连接的控制单元,当所述计算机设备直接查询安装所述SANE扫描软件的终端设备的通信接口是否连接有扫描设备时,所述通讯接口能够响应所述计算机设备的扫描设备查找请求,所述控制单元能够响应通过调用SANE协议框架底层中的扫描驱动的SANE扫描软件发送的扫描作业请求。
第六方面,本发明实施例提供了一种扫描设备,包括上述的计算机设备和上述的扫描设备。
可以理解,本发明直接通过安装所述SANE扫描软件的终端设备的通信接口来查询扫描设备,绕过SANEAPI(Application Program Interface,应用程序接口)中的“sane_get_devices()”来获取可用的扫描设备,因此,不用轮询所有的SANE协议框架底层中的扫描驱动,达到提高搜索速度的效果,进而大幅提高用户体验。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1为本发明实施例提供的一种基于SANE协议框架下扫描设备的搜索方法的流程图;
图2为现有技术的Linux操作系统的示意性框图;
图3为本发明实施例提供的Linux操作系统的示意性框图;
图4为本发明实施例提供的终端设备及扫描设备的连接关系示意图;
图5为本发明实施例提供的扫描设备的结构示意图;
图6为本发明实施例提供的SANE扫描软件的界面示意图;
图7为本发明实施例提供的一种基于SANE协议框架下扫描设备的搜索装置的示意性框图;
图8为本发明实施例提供的计算机设备的示意性框图;
图9为本发明实施例提供的扫描设备的示意性框图;
图10为本发明实施例提供的扫描系统的示意性框图。
具体实施例
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
请参阅附图1,本发明实施例提供一种基于SANE协议框架下扫描设备的搜索方法,该方法的执行主体可以为一种基于SANE协议框架下扫描设备的搜索装置,该搜索装置可以为一种终端设备,例如计算机、手机、平板电脑等。
基于SANE协议框架下扫描设备的搜索方法,包括如下步骤:
步骤S01:接收SANE扫描软件的扫描设备查找请求,其中,SANE扫描软件是基于SANE协议框架下开发的扫描应用软件,并且SANE扫描软件在进行扫描作业时使用SANE协议框架底层中的扫描驱动。
步骤S02:根据扫描设备查找请求,直接查询安装SANE扫描软件的终端设备的通信接口是否连接有扫描设备。
步骤S03:若有,则将与终端设备配置的扫描驱动相匹配的扫描设备确定为目标扫描设备。
可以理解,本发明直接通过安装SANE扫描软件的终端设备的通信接口来查询扫描设备,绕过SANEAPI(Application Program Interface,应用程序接口)中的“sane_get_devices()”来获取可用的扫描设备,因此,不用轮询所有的SANE协议框架底层中的扫描驱动,达到提高搜索速度的效果,进而大幅提高用户体验。
下面对本实施例提供的一种基于SANE协议框架下扫描设备的搜索方法的具体技术方案进行详细的说明。
请参阅附图2,在进行具体说明之前,需要强调的是,目前,在基于Linux的操作系统下,SANE(Scanner Access Now Easy)为通用扫描接口,扫描设备厂商提供SANE Driver,用于实现SANE API接口,应用层中的应用软件调用SANE API接口获取扫描图像,其中,SANEAPI中的“sane_get_devices()”用于查询所有可用的扫描设备,“sane_get_devices()”获取扫描设备的方式包括:
首先,遍历轮询当前终端设备中驱动层的所有扫描驱动,其中,所有扫描驱动包括操作系统自带的扫描驱动和用户后续安装的扫描驱动,扫描驱动具体为扫描设备驱动程序。
其次,基于获取到的扫描驱动确认是否有对应的扫描设备接入。
最后,获取扫描设备,再进行后续的扫描工作。
根据上述可知,当安装了多个SANE后端扫描驱动时,例如A公司开发的扫描应用软件对应5个扫描驱动、B公司开发的扫描应用软件对应3个扫描驱动,C公司开发的扫描应用软件对应2个扫描驱动,因此,通过“sane_get_devices()”这种方式查询扫描设备将会更慢,尤其是有些扫描设备基于网络通信与计算机中后端扫描驱动连接时,这种问题就更加突出,例如,用户在终端设备中点击S ANE扫描软件,由于SANE扫描软件按照“sane_get_devices()”这种方式查询扫描设备,可能在启动过程中都需要花费5分钟,才能完成SANE扫描软件的驱动,这样用户很可能以为SANE扫描软件出现了问题,或者以为终端设备的系统出现问题,再或者用户多次重启SANE扫描软件依然会存在等待时间长,所以造成用户体验较差。由于查询过程的复杂性及不确定性,本发明通过进行多次实验及分析找到查询扫描设备效率低下的原因,因此还需要知道的是,本发明的实现过程中,查找出扫描设备搜索效率低下的原因同样是付出创造性劳动的结果。
下面对本实施例提供的一种基于SANE协议框架下扫描设备的搜索方法的具体技术方案进行详细的说明。
首先,执行步骤S01:接收SANE扫描软件的扫描设备查找请求,其中,SANE扫描软件是基于SANE协议框架下开发的扫描应用软件,并且SANE扫描软件在进行扫描作业时使用SANE协议框架底层中的扫描驱动。
具体地,SANE(ScannerAccess Now Easy)是一个应用程序编程接口(API),它提供给任何光栅图像扫描设备硬件标准化的访问,是操作系统留给应用程序的一个调用接口。
SANE协议框架底层为支持SANE协议的操作系统例如Linux操作系统的驱动层,SANE协议是一种扫描标准,旨在提供标准接口用于访问扫描设备。
请参阅附图3,用户在基于Linux的操作系统的计算机中安装有SANE扫描软件,如附图3所示的第一应用软件、第二应用软件等应用软件,第一应用软件或第二应用软件就会在驱动层通过“sane_get_devices()”来调用可以使用的扫描驱动,例如驱动A、驱动B、驱动C……等,其中,基于Linux的操作系统可以包括中科方德、中标麒麟或银河麒麟等操作系统,SANE协议的官方文档中推荐使用通过“sane_get_devices()”来访问扫描设备。由于SANE协议的官方文档中推荐使用通过“sane_get_devices()”来访问扫描设备存在搜索效率低下的问题,为了使扫描设备适配到诸如上述的操作系统,减少开发成本,因此,本发明同样基于SANE协议进行开发对应的扫描驱动。
扫描应用软件(SANE扫描软件)可以为扫描易、PhotoShop、WPS、Office等应用软件。
其次,执行步骤S02:根据扫描设备查找请求,直接查询安装SANE扫描软件的终端设备的通信接口是否连接有扫描设备。
请参阅附图4,终端设备(例如计算机)可通过USB线、网线(NET)或Wi-Fi连接多台不同的扫描设备,例如扫描设备A、扫描设备B及扫描设备C。
在本实施方式中,通信接口为USB(Universal SerialBus,通用串行总线)接口,USB接口是一个外部总线标准,用于规范终端设备例如计算机与外部设备例如扫描设备的连接和通讯。在本发明的其他实施方式中,计算机还可以通过网络端口进行广播查询,终端设备的网络端口发出广播信号之后,周围的扫描设备响应该广播信号,网络端口可以为网线(NET)接口或Wi-Fi接口。当然,通信接口的种类不限于以上几种,在此不一一列举。
需要知道的是,本发明中提供的基于SANE协议框架下扫描设备的搜索方法的执行主体可以为一种安装有SANE扫描软件的终端设备且该终端设备与步骤S02中描述的终端设备可以是同一终端设备,即,终端设备根据扫描设备查找请求,直接查询自身的通信接口连接的扫描设备。
还需要知道的是,步骤S02中描述的直接查询意指终端设备在接收到扫描设备查找请求之后,直接通过通信接口查找扫描设备而不通过其他的方式例如不通过SANE协议中预定遍历轮询终端设备中安装的所有扫描驱动的方式来查询扫描设备。
进一步地,本发明直接查询安装SANE扫描软件的终端设备的通信接口是否连接有扫描设备的具体过程可以有多种实现方式。
本发明的实施例提供以下方式:
方式一:
根据扫描设备查找请求,直接查询安装SANE扫描软件的终端设备的通信接口是否连接有扫描设备,可以包括以下步骤:
步骤一:获取与终端设备的通信接口连接的设备的设备信息。
具体地,步骤一中的终端设备可以通过通信接口获取与该终端设备的通信接口连接的每个设备的设备信息,其中,设备信息包括设备标识,例如VID(Vender Identifier,厂商标识符)及PID(Product Identifier,产品标识符)。在其他实施方式中,设备标识还可以是设备对应的名称或型号等。需要说明的是,与终端设备通过通讯接口连接的设备不仅包括扫描设备,还可以包括其他电子设备,如音箱、路由器等。扫描设备意指具有扫描功能的设备,扫描设备不仅可以是扫描仪,还可以是带扫描功能的打印机、复印机、带扫描功能的传真机或带扫描功能的其他设备等。
需要知道的是,设备信息还可以包括其他信息,例如设备的运行状态信息。
步骤二:将设备的设备标识与预先设置的设备白名单进行对比。
具体地,设备白名单为用户预先自定义的包含多个支持的设备名称的设备信息,例如设备名单。
通过将与终端设备通过通讯接口连接的所有设备的设备标识分别与预先设置的设备白名单进行对比,进而可以根据对比结果确定设备是否为扫描设备。
步骤三:若设备白名单上存在与设备的设备标识相匹配的设备名称,则确定安装SANE扫描软件的终端设备的通信接口连接有扫描设备。
具体地,判断设备白名单上是否存在与设备的设备信息相匹配的设备名称可以包括:当设备白名单上存在与设备的设备标识相同的设备名称时则判断设备白名单上存在与设备的设备标识相匹配的设备名称。在其他实施方式中,还可以预先建立某些设备的设备标识与设备白名单上的设备名称的对应关系,当设备白名单上存在与设备的设备标识相对应的设备名称时,则判断设备白名单上存在与设备的设备标识相匹配的设备名称。
步骤四:若设备白名单上不存在与设备的设备信息相匹配的设备名称,则确定安装SANE扫描软件的终端设备的通信接口不连接扫描设备。进而,无法完成后续的扫描作业。
可以理解,本发明通过将与终端设备通过通讯接口连接的所有设备的设备标识分别与预先设置的设备白名单进行对比,进而判断终端设备是否连接有扫描设备,无需通过“sane_get_devices()”这种方式来查询扫描设备,因此大幅度的提高了扫描设备的搜索效率,提高用户的使用体验。
方式二:
根据扫描设备查找请求,直接查询安装SANE扫描软件的终端设备的通信接口是否连接有扫描设备,可以包括以下步骤:
步骤一:获取与终端设备的通信接口连接的设备的设备标识及扫描驱动的配置信息。
具体地,步骤一中的终端设备可以通过通信接口获取与该终端设备的通信接口连接的至少一个设备的设备信息,其中,设备信息包括设备标识,该设备标识可以是设备名称也可以是与设备对应的标识符。需要说明的是,与终端设备通过通讯接口连接的设备不仅包括扫描设备,还可以包括其他电子设备,如音箱、路由器等。扫描设备意指具有扫描功能的设备,不仅可以是扫描仪,还可以是带扫描功能的打印机、复印机、带扫描功能的传真机或带扫描功能的其他设备等。
扫描驱动的配置信息具体存储于SANE数据库对应的存储器中,当用户在终端设备(例如计算机)安装扫描驱动后,驱动中的各配置文件被拷贝至存储器中,其中,配置信息为配置文件上的信息。同样地,当用户在终端设备(例如计算机)安装应用软件后,应用软件也被拷贝至存储器中。
需要知道的是,设备信息还可以包括其他信息,例如设备的运行状态信息等。
步骤二:判断设备的设备信息与扫描驱动的配置信息是否匹配,其中,扫描驱动的配置信息存储于SANE数据库中。
具体地,扫描驱动的配置信息可以包括该扫描驱动支持的设备型号,此时将设备的设备信息(例如设备标识)与扫描驱动支持的设备型号进行匹配,则可以判断出设备的设备信息与扫描驱动的配置信息是否匹配。
步骤三:若匹配,则确定安装SANE扫描软件的终端设备的通信接口连接有扫描设备。
步骤四:若不匹配,则确定安装SANE扫描软件的终端设备的通信接口不连接扫描设备。进而,无法完成后续的扫描作业。
可以理解,本发明通过将与终端设备的通信接口连接的设备的设备标识及扫描驱动的配置信息进行对比分析,进而判断终端设备是否连接有扫描设备,无需通过“sane_get_devices()”这种方式来查询扫描设备,因此大幅度的提高了扫描设备的搜索效率,提高用户的使用体验。
方式三:
根据扫描设备查找请求,直接查询安装SANE扫描软件的终端设备的通信接口是否连接有扫描设备,可以包括以下步骤:
步骤一:获取与终端设备的通信接口连接的设备的设备信息。
具体地,步骤一中的终端设备可以通过通信接口获取与该终端设备的通信接口连接的至少一个设备的设备信息,其中,设备信息可以包括设备标识或属性、设备功能等,需要说明的是,与终端设备通过通讯接口连接的设备不仅包括扫描设备,还可以包括其他电子设备,如音箱、路由器等。扫描设备意指具有扫描功能的设备,不仅可以是扫描仪,还可以是带扫描功能的打印机、复印机、带扫描功能的传真机或带扫描功能的其他设备等。
步骤二:根据设备信息判断是否存在第一类型的设备。
具体地,第一类型为用户定义的类型,可以根据用户的需求设置,例如,同属于某生产厂家的设备可以作为第一类型的设备,再例如,设备中具有扫描装置的设备可以作为第一类型的设备。
通过预先设置好相应的规则,终端设备可以通过设备信息中的设备标识或属性、设备功能等信息来获知设备是否为第一类型,进而判断设备是否为扫描设备。
步骤三:若是,则确定安装SANE扫描软件的终端设备的通信接口连接有扫描设备。
步骤四:若否,则确定安装SANE扫描软件的终端设备的通信接口不连接扫描设备。
可以理解,本发明通过预设判断规则来判断与通信接口连接的设备是否为扫描设备,无需通过“sane_get_devices()”这种方式来查询扫描设备,因此大幅度的提高了扫描设备的搜索效率,提高用户的使用体验,同时通过自定义的规则进行判断增加了判断过程的灵活性及可靠性。
需要知道的是,查询安装SANE扫描软件的终端设备的通信接口是否连接有扫描设备不仅限于以上三种方式,还可以包括其他方式,在此不再一一列举。
进一步地,查询安装SANE扫描软件的终端设备的通信接口是否连接有扫描设备还可以同时采用上述方式中的任意两个或三个进行实现,其采用上述方式查询的顺序也可以有多种。例如,当采用方式三查询安装SANE扫描软件的终端设备的通信接口没有/有连接扫描设备后,还可以采用方式一和/或方式二继续查询,进而提高对扫描设备进行搜索的精准性。
再其次,执行步骤S03:若有,则将与终端设备配置的扫描驱动相匹配的扫描设备确定为目标扫描设备。其中,目标扫描设备为可用于后续扫描的扫描设备。
在本发明的实施方式中,将与终端设备配置的扫描驱动相匹配的扫描设备确定为目标扫描设备可以包括两种情况:
情况一:在进行对扫描设备的搜索前,用户已经安装有相匹配的扫描驱动,因此获取到对应的扫描设备后,可直接调用扫描驱动,因此,在本实施方式中,步骤S02中查找到的所有扫描设备均可作为目标扫描设备,以备后续的扫描。
情况二:在扫描驱动和扫描应用软件为不同厂商开发的情况下,优选地,终端设备配置的扫描驱动相匹配的扫描设备确定为目标扫描设备可以包括:判断SANE协议框架底层是否存在与通信接口连接的扫描设备相匹配的扫描驱动;若有,则将与终端设备配置的扫描驱动相匹配的扫描设备确定为目标扫描设备。其中,判断是否存在与通信接口连接的扫描设备相匹配的扫描驱动可以通过判断与扫描设备对应扫描驱动文件或者配置文件是否存在来实现。
进一步地,确定目标扫描设备之后,方法还包括:将目标扫描设备对应的驱动名(backend名称)与目标扫描设备的端口号拼凑起来,形成设备名,并将设备名以传入参数形式传入“SANEAPI sane_open()”(打开设备)中,以完成后续的扫描流程。
下面对本发明实施例提供的扫描设备的搜索方法的工作原理进行进一步说明。
请参阅附图5,本发明实施例中的扫描设备可以包括接触式图像传感器(CIS)、片上系统(SoC)、如通讯接口、扫描马达、Memory(内存单元),其中,Memory(内存单元)、扫描马达及接触式图像传感器(CIS)与片上系统(SoC)连接,扫描马达与接触式图像传感器(CIS)连接,片上系统(SoC)通过通讯接口与终端设备(如计算机)连接。
扫描设备上电之后,片上系统(SoC)加载Memory(内存单元)中的固件代码启动扫描设备,当扫描设备的通讯接口和计算机连接之后,计算机会按照标准的USB协议或者NET协议或者Wi-Fi协议,与扫描设备建立通信连接。当计算机中的SANE扫描软件需要查询是否有扫描设备连接时,SANE扫描软件通过计算机的通讯接口发送扫描设备查找请求,扫描设备的通讯接口接收到该扫描设备查找请求之后,扫描设备会响应该扫描设备查找请求,需要知道的是,这种响应的方式也是基于通讯接口的类型,按照标准的USB协议或者NET协议或者Wi-Fi协议进行响应。
当查找到目标扫描设备之后,将目标扫描设备对应的驱动名(backend名称)与目标扫描设备的端口号拼凑起来,形成设备名,然后以传入参数形式传入“SANEAPI sane_open()”(打开设备)中,当用户启动对应的SANE扫描软件之后,SANE扫描软件对应的窗口或界面会显示对应的设备名。需要知道的是,当目标扫描设备存在多个时,SANE扫描软件对应的窗口可以显示出多个目标扫描设备以供用户对目标扫描设备进行选择。
扫描设备中片上系统(SoC)可以通过通讯接口接收计算机侧的SANE扫描软件中发送扫描作业请求,然后控制扫描马达启动接触式图像传感器(CIS),接触式图像传感器(CIS)扫描相应的文档之后,会在Memory(内存单元)中缓存,然后通过通讯接口将图像数据上传至计算机侧的SANE扫描软件中,进而完成扫描工作。
下面以基于Linux的操作系统自带的一种SANE应用软件为例进行说明。
请参阅附图6,用户通过在终端设备(例如计算机)的可视化界面上点击SANE应用软件的图标(如附图6中的(a)所示),以启动SANE应用软件,启动之后SANE应用软件通过本发明实施例提供的基于SANE协议框架下扫描设备的搜索方法获取可用的扫描设备(即目标扫描设备)。
当SANE应用软件获取到目标扫描设备的设备信息之后,在SANE应用软件的主界面选择下拉菜单(如附图6中的(b)中所示的“▼”),就可以查看当前终端设备有几个可用的扫描设备,如果需要使用某个扫描设备,并且需要自定义扫描参数(例如纸张大小、分辨率、扫描文档输出位置等),可以从下拉菜单中选择某个扫描驱动程序进行参数自定义,例如生成设置界面(如附图6中的(c)所示),用户可以通过设置界面设置对应驱动程序(例如驱动A)的设置参数,设置完毕后将设置参数通过通讯端口下发给目标扫描设备,以使得目标扫描设备根据设置参数完成扫描工作。
请参阅附图7,本发明实施例提供一种基于SANE协议框架下扫描设备的搜索装置1,在本发明实施例中,该搜索装置1为一种终端设备,例如计算机,该搜索装置1包括:接收模块11、查询模块12及确定模块13,其中,接收模块11用于接收SANE扫描软件的扫描设备查找请求,其中,SANE扫描软件是基于SANE协议框架下开发的扫描应用软件,并且SANE扫描软件在进行扫描作业时使用SANE协议框架底层中的扫描驱动;查询模块12用于根据扫描设备查找请求,直接查询安装SANE扫描软件的终端设备的通信接口是否连接有扫描设备;确定模块13用于当存在与安装SANE扫描软件的终端设备的通信接口连接的扫描设备时,则将与配置的扫描驱动相匹配的扫描设备确定为目标扫描设备。
可选地,通信接口包括USB接口、网线接口和/或Wi-Fi接口。
可选地,确定模块13包括:第一判断单元及第一确定单元,其中,第一判断单元用于判断SANE协议框架底层是否存在与通信接口连接的扫描设备相匹配的扫描驱动,第一确定单元用于当存在与通信接口连接的扫描设备相匹配的扫描驱动时则将与终端设备配置的扫描驱动相匹配的扫描设备确定为目标扫描设备。
可选地,查询模块12包括第一获取单元、比较单元及第二确定单元,其中,第一获取单元用于获取与终端设备的通信接口连接的设备的设备信息,比较单元用于将设备的设备信息与预先设置的设备白名单进行对比,第二确定单元用于当设备白名单上存在与设备的设备信息相匹配的设备名称时,确定安装SANE扫描软件的终端设备的通信接口连接有扫描设备。
可选地,查询模块12包括第二获取单元、第二判断单元及第三确定单元,其中,第二获取单元用于获取与终端设备的通信接口连接的设备的设备信息及扫描驱动的配置信息,第二判断单元用于判断设备的设备信息与扫描驱动的配置信息是否匹配,其中,扫描驱动的配置信息存储于SANE数据库中;第三确定单元用于当设备的设备信息与扫描驱动的配置信息匹配时,确定安装SANE扫描软件的终端设备的通信接口连接有扫描设备。
可选地,查询模块12包括第三获取单元、第三判断单元及第四确定单元,其中,第三获取单元用于获取与终端设备的通信接口连接的设备的设备信息,第三判断单元用于根据设备信息判断是否存在第一类型的设备,第四确定单元用于当存在第一类型的设备时,确定安装SANE扫描软件的终端设备的通信接口连接有扫描设备。
可以理解,本发明通过直接通过安装SANE扫描软件的终端设备的通信接口来扫描设备,绕过SANEAPI(ApplicationProgram Interface,应用程序接口)中的“sane_get_devices()”来获取可用的扫描设备,因此,不用轮询所有的SANE协议框架底层中的扫描驱动,达到提高搜索速度的效果,进而大幅提高用户体验。
请参阅附图8,本发明实施例提供一种计算机设备50,该实施例的计算机设备50包括:处理器51、存储器52以及存储在存储器52中并可在处理器51上运行的计算机程序53,该计算机程序53被处理器51执行时实现实施例中的基于SANE协议框架下扫描设备的搜索方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器51执行时实现实施例中搜索装置1中各模型/单元的功能,为避免重复,此处不一一赘述。
计算机设备50可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备50可包括但不仅限于处理器51、存储器52。本领域技术人员可以理解,图8仅仅是计算机设备50的示例,并不构成对计算机设备50的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。
处理器51可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器52可以是计算机设备50的内部存储单元,例如计算机设备50的硬盘或内存。存储器52也可以是计算机设备50的外部存储设备,例如计算机设备50上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器52还可以既包括计算机设备50的内部存储单元也包括外部存储设备。存储器52用于存储计算机程序以及计算机设备所需的其它程序和数据。存储器52还可以用于暂时地存储已经输出或者将要输出的数据。
请参照附图9,进一步地,本发明实施例提供了一种扫描设备2,包括与本发明中任一实施例中的计算机设备50/搜索装置1连接的通讯接口60以及与所述通讯接口60连接的控制单元70,当计算机设备50/搜索装置1直接查询安装SANE扫描软件的终端设备的通信接口是否连接有扫描设备时,通讯接口能够响应计算机设备50/搜索装置1的扫描设备查找请求,控制单元70能够响应通过调用SANE协议框架底层中的扫描驱动的SANE扫描软件发送的扫描作业请求,其中,扫描设备查找请求具体由SANE扫描软件生成。
进一步地,扫描设备还包括图像读取单元,图像读取单元可以是本发明实施例中的接触式图像传感器(CIS),还可以是其它器件例如电荷藕合器件图像传感器(CCD),当然,图像读取单元还可以为其它类型的器件,在此不一一列举。图像读取单元用于在控制单元的控制下对扫描相应的文档进行扫描,然后通过通讯接口将图像数据上传至计算机设备50/搜索装置1的SANE扫描软件中,进而完成扫描工作。
控制单元可以为本发明实施例中的片上系统(SoC),还可以现场可编程门阵列(FPGA)电路与片上系统的集合(FPGA SoC),当然,控制单元还可以是为其他类型的器件或单元,在此不一一列举。
扫描设备还可以包括本发明实施例中的扫描马达、Memory(内存单元)等,扫描马达、Memory(内存单元)在扫描设备的功能可以参见上文,为避免重复,此处不一一赘述。
可以理解,本发明直接通过安装SANE扫描软件的终端设备的通信接口来查询扫描设备,绕过SANEAPI(ApplicationProgram Interface,应用程序接口)中的“sane_get_devices()”来获取可用的扫描设备,并向可用的扫描设备发送扫描作业请求,控制单元响应该扫描作业请求并控制图像读取单元完成扫描作业,因此,在上述过程中,大幅度的提高了对扫描作业的完成效率。
请参照附图10,本发明实施例提供了一种扫描系统100,包括扫描设备2以及计算机设备50/搜索装置1,扫描设备2与计算机设备50/搜索装置1通信连接,例如,扫描设备2与计算机设备50/搜索装置1可以通过USB、网线、Wi-Fi连接中的一种或任意多种连接,其中,扫描设备2可以是本发明任一实施例中的扫描设备,计算机设备50/搜索装置1可以是本发明任一实施例中的计算机设备/搜索装置,为避免重复,此处不一一赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种基于SANE协议框架下扫描设备的搜索方法,其特征在于,所述方法包括:
接收SANE扫描软件的扫描设备查找请求,其中,所述SANE扫描软件是基于SANE协议框架下开发的扫描应用软件,并且所述SANE扫描软件在进行扫描作业时使用所述SANE协议框架底层中的扫描驱动;
根据所述扫描设备查找请求,通过安装所述SANE扫描软件的终端设备的通信接口,查询所述通信接口是否连接有扫描设备;
若有,则将与所述终端设备配置的扫描驱动相匹配的扫描设备确定为目标扫描设备。
2.根据权利要求1所述的基于SANE协议框架下扫描设备的快速搜索方法,其特征在于,所述通信接口包括USB接口、网线接口和/或Wi-Fi接口。
3.根据权利要求1所述的基于SANE协议框架下扫描设备的快速搜索方法,其特征在于,所述将与终端设备配置的扫描驱动相匹配的扫描设备确定为目标扫描设备,包括:
判断所述SANE协议框架底层是否存在与所述通信接口连接的扫描设备相匹配的扫描驱动;
若有,则将与所述终端设备配置的扫描驱动相匹配的扫描设备确定为目标扫描设备。
4.根据权利要求1所述的基于SANE协议框架下扫描设备的快速搜索方法,其特征在于,所述根据所述扫描设备查找请求,通过安装所述SANE扫描软件的终端设备的通信接口,查询所述通信接口是否连接有扫描设备,包括:
获取与所述终端设备的通信接口连接的设备的设备信息;
将所述设备的设备信息与预先设置的设备白名单进行对比;
若所述设备白名单上存在与所述设备的设备信息相匹配的设备信息,则确定安装所述SANE扫描软件的终端设备的通信接口连接有所述扫描设备。
5.根据权利要求1所述的基于SANE协议框架下扫描设备的快速搜索方法,其特征在于,所述根据所述扫描设备查找请求,通过安装所述SANE扫描软件的终端设备的通信接口,查询所述通信接口是否连接有扫描设备,包括:
获取与所述终端设备的通信接口连接的设备的设备信息及所述扫描驱动的配置信息;
判断所述设备的设备信息与所述扫描驱动的配置信息是否匹配,其中,所述扫描驱动的配置信息存储于SANE数据库中;
若匹配,则确定安装所述SANE扫描软件的终端设备的通信接口连接有所述扫描设备。
6.根据权利要求1所述的基于SANE协议框架下扫描设备的快速搜索方法,其特征在于,所述根据所述扫描设备查找请求,通过安装所述SANE扫描软件的终端设备的通信接口,查询所述通信接口是否连接有扫描设备,包括:
获取与所述终端设备的通信接口连接的设备的设备信息;
根据所述设备信息判断是否存在第一类型的设备;
若是,则确定安装所述SANE扫描软件的终端设备的通信接口连接有所述扫描设备。
7.根据权利要求1所述的基于SANE协议框架下扫描设备的快速搜索方法,其特征在于,所述根据所述扫描设备查找请求,通过安装所述SANE扫描软件的终端设备的通信接口,查询所述通信接口是否连接有扫描设备,包括:
不使用SANE协议中预定遍历轮询所述终端设备中安装的所有扫描驱动来查询扫描设备,直接通过所述终端设备的通信接口来查询扫描设备。
8.一种基于SANE协议框架下扫描设备的搜索装置,其特征在于,包括:
接收模块,用于接收SANE扫描软件的扫描设备查找请求,其中,所述SANE扫描软件是基于SANE协议框架下开发的扫描应用软件,并且所述SANE扫描软件在进行扫描作业时使用所述SANE协议框架底层中的扫描驱动;
查询模块,用于根据所述扫描设备查找请求,通过安装所述SANE扫描软件的终端设备的通信接口,查询所述通信接口是否连接有扫描设备;及
确定模块,用于当存在与安装所述SANE扫描软件的终端设备的通信接口连接的扫描设备时,则将与配置的扫描驱动相匹配的扫描设备确定为目标扫描设备。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的方法。
10.一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于:所述程序指令被处理器加载并执行时实现权利要求1至7任意一项所述的方法的步骤。
11.一种扫描设备,其特征在于,包括:与权利要求10所述计算机设备连接的通讯接口以及与所述通讯接口连接的控制单元;当所述计算机设备通过安装所述SANE扫描软件的终端设备的通信接口,查询所述通信接口是否连接有扫描设备时,所述通讯接口能够响应所述计算机设备的扫描设备查找请求;所述控制单元能够响应通过调用SANE协议框架底层中的扫描驱动的SANE扫描软件发送的扫描作业请求。
12.一种扫描系统,其特征在于,包括:如权利要求10所述的计算机设备和如权利要求11所述的扫描设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910422825.5A CN110109850B (zh) | 2019-05-21 | 2019-05-21 | 基于sane协议框架下扫描设备的搜索方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910422825.5A CN110109850B (zh) | 2019-05-21 | 2019-05-21 | 基于sane协议框架下扫描设备的搜索方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110109850A CN110109850A (zh) | 2019-08-09 |
CN110109850B true CN110109850B (zh) | 2023-05-23 |
Family
ID=67491370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910422825.5A Active CN110109850B (zh) | 2019-05-21 | 2019-05-21 | 基于sane协议框架下扫描设备的搜索方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110109850B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111638909A (zh) * | 2020-05-20 | 2020-09-08 | 中国软件与技术服务股份有限公司 | 一种跨浏览器跨平台调用扫描设备的方法及电子装置 |
CN112486395B (zh) * | 2020-12-18 | 2022-05-31 | 珠海奔图电子有限公司 | 基于国产操作系统显示扫描设备信息的方法、装置及系统 |
CN113836955A (zh) * | 2021-08-20 | 2021-12-24 | 青岛中科英泰商用系统股份有限公司 | 一种扫描枪输出配置方法、系统、电子设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963950B (zh) * | 2010-09-30 | 2012-02-29 | 飞天诚信科技股份有限公司 | 一种定位设备所连接的usb端口的方法 |
CN105204912A (zh) * | 2015-10-15 | 2015-12-30 | 北京金山安全软件有限公司 | 一种驱动程序匹配方法及装置 |
CN109086087A (zh) * | 2018-08-07 | 2018-12-25 | 中国建设银行股份有限公司 | 一种基于twain协议的设备扫描方法及装置 |
CN109245929A (zh) * | 2018-09-13 | 2019-01-18 | 京信通信系统(中国)有限公司 | 自动发现网络设备的方法、装置、计算机存储介质及设备 |
-
2019
- 2019-05-21 CN CN201910422825.5A patent/CN110109850B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110109850A (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110109850B (zh) | 基于sane协议框架下扫描设备的搜索方法及装置 | |
CN104461703B (zh) | 信息处理系统和信息处理方法 | |
CN109947482B (zh) | 一种usb设备的加载方法、存储介质及智能电视 | |
WO2018040746A1 (zh) | 一种驱动程序的安装方法及装置、电子设备 | |
CN113490192B (zh) | 蓝牙连接方法、装置、终端设备及可读存储介质 | |
CN112738046B (zh) | 一种一键登录的方法、终端及系统服务器 | |
US20200174718A1 (en) | Printing method, information processing apparatus employing printing method, and non-transitory computer-readable recording medium storing instructions therefor | |
CN113206871A (zh) | 一种文件传输方法、终端及计算机可读存储介质 | |
WO2018205792A1 (zh) | 一种驱动程序安装方法和驱动安装设备 | |
CN113347318B (zh) | 一种扫描控制系统、方法及计算设备 | |
EP4213010B1 (en) | Guidance control method for driver installation, device regarding the same, and terminal | |
US9766872B2 (en) | Information processing device executing communication processing with external device, and method and system for the same | |
US11323439B2 (en) | Device management apparatus, method of managing device, device management system, and non-transitory recording medium | |
WO2024103583A1 (zh) | Bios选项修改的生效方法和装置、非易失性可读存储介质及电子装置 | |
US8370434B2 (en) | Workflow system and method of controlling the same | |
CN114422236B (zh) | 一种智能设备的访问方法、装置和电子设备 | |
US20150296067A1 (en) | Mobile terminal, control method thereof, and non-transitory computer-readable medium | |
CN111417908A (zh) | 一种ecu识别器及其识别方法、系统、设备、介质 | |
CN110601938A (zh) | 一种智能家电唯一标识码写入方法、网络终端设备及系统 | |
CN111242256A (zh) | 信息验证方法、装置及终端 | |
CN110956048A (zh) | 适配扫描设备的方法和装置 | |
CN114020222B (zh) | 一种文件管理方法、设备及存储介质 | |
CN116560760B (zh) | 基于外接hub的跨系统外设操作方法、装置、设备、介质 | |
CN117811921A (zh) | 一种部件参数配置方法、服务器和终端设备 | |
CN115471929B (zh) | 一种开锁方法、装置和电子设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |