发明内容
本发明正是基于上述问题,提出了一种新的技术方案,避免通过扫描、配对的方式来连接设备,从而减少了连接设备的时间,进而提高了连接设备的效率。
有鉴于此,本发明的第一方面提出了一种设备连接方法,包括:当业务类型发生变更时,查询连接池中是否存在与变更后的业务类型相关联的目标连接实例;若查询到所述连接池中存在所述目标连接实例,则使用所述目标连接实例连接设备。
在该技术方案中,通过在连接池中查询出与变更后的业务类型相关联的目标连接实例,即可直接根据目标连接实例来连接设备,避免通过扫描、配对的方式来连接设备,从而减少了连接设备的时间,进而提高了连接设备的效率。
在上述技术方案中,优选地,还包括:若所述连接池中不存在所述目标连接实例,则获取与所述变更后的业务类型相关联的目标设备;建立与所述目标设备的连接,并将与所述目标设备的连接实例添加到所述连接池中。
在该技术方案中,在连接池中不存在目标连接实例的情况下,在与目标设备连接后,将与目标设备的连接实例添加到连接池中,以便下次需要进行当前的业务时直接根据连接池中的连接实例就可实现快速连接。
在上述任一技术方案中,优选地,还包括:将多个设备信息与多个业务类型一一对应存储;以及所述获取与所述变更后的业务类型相关联的目标设备的步骤,具体包括:在所述多个设备信息中获取与所述变更后的业务类型对应的目标设备信息;将与所述目标设备信息匹配的设备作为所述目标设备。
在该技术方案中,预先将多个设备信息与多个业务类型一一对应存储,则在连接池中不存在目标连接实例的情况下,根据与变更后的业务类型对应的目标设备信息,来连接设备,从而保证了连接设备的可靠性。
在上述任一技术方案中,优选地,所述多个设备信息中的每个设备信息包括以下之一或多种的组合:设备地址、设备配对信息、设备蓝牙协议的版本。其中,设备配对信息包括但不限于密码、或者指纹。
在上述任一技术方案中,优选地,所述将与所述目标设备之间的连接实例添加到所述连接池中的步骤之前,还包括:若所述连接池中的连接实例的数量达到最大值,则通过预设算法将所述连接池中的连接实例进行移除。
在该技术方案中,若连接池中的连接实例的数量达到最大值,说明无法再向连接池中添加新的连接实例,则通过将连接池中的连接实例进行移除,从而可以向连接池中添加新的连接实例。
在上述任一技术方案中,优选地,所述预设算法包括:FIFO(Fist In Fist Out,先进先出)算法、LFU(Least Frequently Used,近期最不经常使用)算法、或者LRU(LeastRecently Used,近期最少使用)算法。
在上述任一技术方案中,优选地,若根据所述目标连接实例,通过蓝牙连接设备,则所述连接池包括:第一类型连接池和/或第二类型连接池,所述第一类型连接池中有一个连接实例,所述第二类型连接池中有多个连接实例;以及在所述连接池包括所述第一类型连接池和所述第二类型连接池的情况下,还包括:当所述第一类型连接池和所述第二类型连接池中的任一类型连接池中的连接实例被占用时,将所述第一类型连接池和所述第二类型连接池中的另一类型连接池中的连接实例清空。
在该技术方案中,在进行蓝牙连接时,连接池分为两大类,一类是传统的蓝牙连接,由于通过传统的蓝牙连接只能连接一个设备,因此该类的连接池中只有一个连接实例,另一类是BLE(Bluetooth Low Energy,蓝牙低功耗)蓝牙连接,BLE蓝牙协议支持多个设备同时连接,因此该类的连接池中可以有多个连接实例,连接实例的数量可以根据实际场景自行设定。另外,由于传统蓝牙与BLE蓝牙的不共存性,因此,其中一类的连接池中的连接实例被占用时,将另一类的连接池中的连接实例清空,即该类的连接池中的连接实例被释放,从而保证了在进行蓝牙连接时的可靠性。
在上述任一技术方案中,优选地,还包括:若使用所述目标连接实例连接设备的时长达到预定时长,则重新使用所述目标连接实例连接设备,直到根据所述目标连接实例成功连接到设备或者业务类型再次发生变更时为止。
在该技术方案中,采取超时直连的方式可以跳过设备扫描阶段,从而更快地与设备建立连接。
本发明的第二方面提出了一种设备连接系统,包括:查询单元,用于当业务类型发生变更时,查询连接池中是否存在与变更后的业务类型相关联的目标连接实例;连接单元,用于若查询到所述连接池中存在所述目标连接实例,则使用所述目标连接实例连接设备。
在该技术方案中,通过在连接池中查询出与变更后的业务类型相关联的目标连接实例,即可直接根据目标连接实例来连接设备,避免通过扫描、配对的方式来连接设备,从而减少了连接设备的时间,进而提高了连接设备的效率。
在上述技术方案中,优选地,还包括:获取单元,用于若所述连接池中不存在所述目标连接实例,则获取与所述变更后的业务类型相关联的目标设备;所述连接单元还用于,建立与所述目标设备的连接;添加单元,用于将与所述目标设备的连接实例添加到所述连接池中。
在该技术方案中,在连接池中不存在目标连接实例的情况下,在与目标设备连接后,将与目标设备的连接实例添加到连接池中,以便下次需要进行当前的业务时直接根据连接池中的连接实例就可实现快速连接。
在上述任一技术方案中,优选地,还包括:存储单元,用于将多个设备信息与多个业务类型一一对应存储;以及所述获取单元包括:获取子单元,用于在所述多个设备信息中获取与所述变更后的业务类型对应的目标设备信息;确定子单元,用于将与所述目标设备信息匹配的设备作为所述目标设备。
在该技术方案中,预先将多个设备信息与多个业务类型一一对应存储,则在连接池中不存在目标连接实例的情况下,根据与变更后的业务类型对应的目标设备信息,来连接设备,从而保证了连接设备的可靠性。
在上述任一技术方案中,优选地,所述多个设备信息中的每个设备信息包括以下之一或多种的组合:设备地址、设备配对信息、设备蓝牙协议的版本。
在上述任一技术方案中,优选地,还包括:移除单元,用于若所述连接池中的连接实例的数量达到最大值,则通过预设算法将所述连接池中的连接实例进行移除。
在该技术方案中,若连接池中的连接实例的数量达到最大值,说明无法再向连接池中添加新的连接实例,则通过将连接池中的连接实例进行移除,从而可以向连接池中添加新的连接实例。
在上述任一技术方案中,优选地,所述预设算法包括:FIFO算法、LFU算法、或者LRU算法。
在上述任一技术方案中,优选地,若根据所述目标连接实例,通过蓝牙连接设备,则所述连接池包括:第一类型连接池和/或第二类型连接池,所述第一类型连接池中有一个连接实例,所述第二类型连接池中有多个连接实例;以及在所述连接池包括所述第一类型连接池和所述第二类型连接池的情况下,还包括:清空单元,用于当所述第一类型连接池和所述第二类型连接池中的任一类型连接池中的连接实例被占用时,将所述第一类型连接池和所述第二类型连接池中的另一类型连接池中的连接实例清空。
在该技术方案中,在进行蓝牙连接时,连接池分为两大类,一类是传统的蓝牙连接,由于通过传统的蓝牙连接只能连接一个设备,因此该类的连接池中只有一个连接实例,另一类是BLE(Bluetooth Low Energy,蓝牙低功耗)蓝牙连接,BLE蓝牙协议支持多个设备同时连接,因此该类的连接池中可以有多个连接实例,连接实例的数量可以根据实际场景自行设定。另外,由于传统蓝牙与BLE蓝牙的不共存性,因此,其中一类的连接池中的连接实例被占用时,将另一类的连接池中的连接实例清空,即该类的连接池中的连接实例被释放,从而保证了在进行蓝牙连接时的可靠性。
在上述任一技术方案中,优选地,所述连接单元还用于,若使用所述目标连接实例连接设备的时长达到预定时长,则重新使用所述目标连接实例连接设备,直到根据所述目标连接实例成功连接到设备或者业务类型再次发生变更时为止。
在该技术方案中,采取超时直连的方式可以跳过设备扫描阶段,从而更快地与设备建立连接。
通过本发明的技术方案,避免通过扫描、配对的方式来连接设备,从而减少了连接设备的时间,进而提高了连接设备的效率。
具体实施方式
为了可以更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了根据本发明的一个实施例的设备连接方法的流程示意图。
如图1所示,根据本发明的一个实施例的设备连接方法,包括:
步骤102,当业务类型发生变更时,查询连接池中是否存在与变更后的业务类型相关联的目标连接实例。
下面对连接池(Connection Pool)进行说明。在实际应用开发中,特别是在Web(互联网)应用系统中,如果JSP(Java Server Pages,Java服务器页面)、Servlet(ServerApplet,是用Java编写的服务器端程序,其主要功能在于交互式地浏览和修改数据,生成动态Web内容)或EJB(Enterprise JavaBean,是JavaEE的一部分,定义了一个用于开发基于组件的企业多重应用的标准)使用JDBC(Java Data Base Connectivity,Java数据库连接)直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接、打开数据库、存储数据和关闭数据库连接等步骤,而连接并打开数据库是一件既消耗资源又费时的工作,如果频繁发生这样数据库操作,系统的性能必然会急剧下降,甚至会导致系统崩溃。连接池就能够解决上述技术问题,具体地,连接池就是将数据库连接实例作为对象存储在一个Vector(容器)对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接实例,这样,通过复用这些已经建立的数据库连接实例,可以解决上述中的技术问题,极大地节省了系统资源和时间。
步骤104,若查询到所述连接池中存在所述目标连接实例,则使用所述目标连接实例连接设备。
在该技术方案中,通过在连接池中查询出与变更后的业务类型相关联的目标连接实例,即可直接根据目标连接实例来连接设备,避免通过扫描、配对的方式来连接设备,从而减少了连接设备的时间,进而提高了连接设备的效率。
在上述技术方案中,优选地,还包括:若所述连接池中不存在所述目标连接实例,则获取与所述变更后的业务类型相关联的目标设备;建立与所述目标设备的连接,并将与所述目标设备的连接实例添加到所述连接池中。
在该技术方案中,在连接池中不存在目标连接实例的情况下,在与目标设备连接后,将与目标设备的连接实例添加到连接池中,以便下次需要进行当前的业务时直接根据连接池中的连接实例就可实现快速连接。
在上述任一技术方案中,优选地,还包括:将多个设备信息与多个业务类型一一对应存储;以及所述获取与所述变更后的业务类型相关联的目标设备的步骤,具体包括:在所述多个设备信息中获取与所述变更后的业务类型对应的目标设备信息;将与所述目标设备信息匹配的设备作为所述目标设备。
在该技术方案中,预先将多个设备信息与多个业务类型一一对应存储,则在连接池中不存在目标连接实例的情况下,根据与变更后的业务类型对应的目标设备信息,来连接设备,从而保证了连接设备的可靠性。
在上述任一技术方案中,优选地,所述多个设备信息中的每个设备信息包括以下之一或多种的组合:设备地址、设备配对信息、设备蓝牙协议的版本。其中,设备配对信息包括但不限于密码、或者指纹。
若能预先进行配对操作,可以不用配置设备配对信息。
在上述任一技术方案中,优选地,所述将与所述目标设备之间的连接实例添加到所述连接池中的步骤之前,还包括:若所述连接池中的连接实例的数量达到最大值,则通过预设算法将所述连接池中的连接实例进行移除。
在该技术方案中,若连接池中的连接实例的数量达到最大值,说明无法再向连接池中添加新的连接实例,则通过将连接池中的连接实例进行移除,从而可以向连接池中添加新的连接实例。
例如,在向连接池中添加新的连接实例之前,若连接池中有已经有3个连接实例,此时连接池中的连接实例的数量已经达到最大值,则可以将连接池中的一个连接实例移除,在将连接池中的连接实例移动后,就可以向连接池中添加新的连接实例。
在上述任一技术方案中,优选地,所述预设算法包括:FIFO算法、LFU算法、或者LRU算法。
例如,采用LRU算法来移动连接池中的连接实例,每次访问连接池中的连接实例时,将访问的连接实例的使用值加1,连接池中其他连接实例的使用值减1。对于新添加的连接实例,其初始使用值为该连接池的最大连接数。若添加新的连接实例时连接池中的连接实例的数量已达到该连接池的最大值,则将最小使用值的连接实例从连接池中移除。
在上述任一技术方案中,优选地,若根据所述目标连接实例,通过蓝牙连接设备,则所述连接池包括:第一类型连接池和/或第二类型连接池,所述第一类型连接池中有一个连接实例,所述第二类型连接池中有多个连接实例;以及在所述连接池包括所述第一类型连接池和所述第二类型连接池的情况下,还包括:当所述第一类型连接池和所述第二类型连接池中的任一类型连接池中的连接实例被占用时,将所述第一类型连接池和所述第二类型连接池中的另一类型连接池中的连接实例清空。
在该技术方案中,在进行蓝牙连接时,连接池分为两大类,一类是传统的蓝牙连接,由于通过传统的蓝牙连接只能连接一个设备,因此该类的连接池中只有一个连接实例,另一类是BLE蓝牙连接,BLE蓝牙协议支持多个设备同时连接,因此该类的连接池中可以有多个连接实例,连接实例的数量可以根据实际场景自行设定。另外,由于传统蓝牙与BLE蓝牙的不共存性,因此,其中一类的连接池中的连接实例被占用时,将另一类的连接池中的连接实例清空,即该类的连接池中的连接实例被释放,从而保证了在进行蓝牙连接时的可靠性。
对于连接池中的连接实例被清空,除因蓝牙协议切换导致连接池被清空外,用户可以根据实际业务需求进行处理。
在上述任一技术方案中,优选地,还包括:若使用所述目标连接实例连接设备的时长达到预定时长,则重新使用所述目标连接实例连接设备,直到根据所述目标连接实例成功连接到设备或者业务类型再次发生变更时为止。
在该技术方案中,采取超时直连的方式可以跳过设备扫描阶段,从而更快地与设备建立连接。
超时直连的方式即为,每次连接设备超时后将自动重连,直到设备启动成功连接到设备或者业务类型再次发生变更。
另外,在根据目标连接实例连接设备之后,监听与设备的连接情况,若监听与设备断开了连接,则将连接设备的连接实例从连接池中移除。
图2示出了根据本发明的一个实施例的业务变更之前设备连接的流程示意图。
如图2所示,根据本发明的一个实施例的业务变更之前设备连接的流程包括:
步骤202,在业务变更之前,判断是否连接有设备,在连接有设备时,执行步骤206,在未连接有设备时,执行步骤204。
步骤204,判断是否在监听设备启动,在监听设备启动时,执行步骤210,在未监听设备启动时,结束本次流程。
步骤206,释放连接实例。
步骤208,执行业务变更后设备连接的流程,具体见图3。
步骤210,停止监听设备启动。
图3示出了根据本发明的一个实施例的业务变更之后设备连接的流程示意图。
如图3所示,根据本发明的一个实施例的业务变更之后设备连接的流程,包括:
步骤302,业务类型发生变更后,请求进行设备连接。
步骤304,在连接池中查询与变更后的业务类型相关联的目标连接实例。
步骤306,判断连接池中是否有目标连接实例,在判定连接池中有目标连接实例时,进入步骤308,在判定连接池中没有目标连接实例时,进入步骤310。
步骤308,使用目标连接实例进行连接。
步骤310,获取与变更后的业务类型相关联的目标设备。
步骤312,尝试与目标设备建立连接。
步骤314,判断目标设备是否已经启动,在判定目标设备未启动时,进入步骤316,在判定目标设备启动时,进入步骤318。
步骤316,监听目标设备是否启动,并在目标设备启动时,执行下一步骤,即进入步骤318。
步骤318,将与目标设备的连接实例添加到连接池中。
图4示出了根据本发明的一个实施例的设备连接系统的结构示意图。
如图4所示,根据本发明的一个实施例的设备连接系统400,包括:查询单元402和连接单元404。
查询单元402,用于当业务类型发生变更时,查询连接池中是否存在与变更后的业务类型相关联的目标连接实例。
连接单元404,用于若查询到所述连接池中存在所述目标连接实例,则使用所述目标连接实例连接设备。
在该技术方案中,通过在连接池中查询出与变更后的业务类型相关联的目标连接实例,即可直接根据目标连接实例来连接设备,避免通过扫描、配对的方式来连接设备,从而减少了连接设备的时间,进而提高了连接设备的效率。
在上述技术方案中,优选地,设备连接系统400还包括:获取单元406,用于若所述连接池中不存在所述目标连接实例,则获取与所述变更后的业务类型相关联的目标设备;所述连接单元404还用于,建立与所述目标设备的连接;添加单元408,用于将与所述目标设备的连接实例添加到所述连接池中。
在该技术方案中,在连接池中不存在目标连接实例的情况下,在与目标设备连接后,将与目标设备的连接实例添加到连接池中,以便下次需要进行当前的业务时直接根据连接池中的连接实例就可实现快速连接。
在上述任一技术方案中,优选地,设备连接系统400还包括:存储单元410,用于将多个设备信息与多个业务类型一一对应存储;以及所述获取单元406包括:获取子单元4062,用于在所述多个设备信息中获取与所述变更后的业务类型对应的目标设备信息;确定子单元4064,用于将与所述目标设备信息匹配的设备作为所述目标设备。
在该技术方案中,预先将多个设备信息与多个业务类型一一对应存储,则在连接池中不存在目标连接实例的情况下,根据与变更后的业务类型对应的目标设备信息,来连接设备,从而保证了连接设备的可靠性。
在上述任一技术方案中,优选地,所述多个设备信息中的每个设备信息包括以下之一或多种的组合:设备地址、设备配对信息、设备蓝牙协议的版本。
若能预先进行配对操作,可以不用配置设备配对信息。
在上述任一技术方案中,优选地,设备连接系统400还包括:移除单元412,用于若所述连接池中的连接实例的数量达到最大值,则通过预设算法将所述连接池中的连接实例进行移除。
在该技术方案中,若连接池中的连接实例的数量达到最大值,说明无法再向连接池中添加新的连接实例,则通过将连接池中的连接实例进行移除,从而可以向连接池中添加新的连接实例。
例如,在向连接池中添加新的连接实例之前,若连接池中有已经有4个连接实例,此时连接池中的连接实例的数量已经达到最大值,则可以将连接池中的一个连接实例移除,在将连接池中的连接实例移动后,就可以向连接池中添加新的连接实例。
在上述任一技术方案中,优选地,所述预设算法包括:FIFO算法、LFU算法、或者LRU算法。
例如,采用LRU算法来移动连接池中的连接实例,每次访问连接池中的连接实例时,将访问的连接实例的使用值加1,连接池中其他连接实例的使用值减1。对于新添加的连接实例,其初始使用值为该连接池的最大连接数。若添加新的连接实例时连接池中的连接实例的数量已达到该连接池的最大值,则将最小使用值的连接实例从连接池中移除。
在上述任一技术方案中,优选地,若根据所述目标连接实例,通过蓝牙连接设备,则所述连接池包括:第一类型连接池和/或第二类型连接池,所述第一类型连接池中有一个连接实例,所述第二类型连接池中有多个连接实例;以及在所述连接池包括所述第一类型连接池和所述第二类型连接池的情况下,设备连接系统400还包括:清空单元414,用于当所述第一类型连接池和所述第二类型连接池中的任一类型连接池中的连接实例被占用时,将所述第一类型连接池和所述第二类型连接池中的另一类型连接池中的连接实例清空。
在该技术方案中,在进行蓝牙连接时,连接池分为两大类,一类是传统的蓝牙连接,由于通过传统的蓝牙连接只能连接一个设备,因此该类的连接池中只有一个连接实例,另一类是BLE蓝牙连接,BLE蓝牙协议支持多个设备同时连接,因此该类的连接池中可以有多个连接实例,连接实例的数量可以根据实际场景自行设定。另外,由于传统蓝牙与BLE蓝牙的不共存性,因此,其中一类的连接池中的连接实例被占用时,将另一类的连接池中的连接实例清空,即该类的连接池中的连接实例被释放,从而保证了在进行蓝牙连接时的可靠性。
对于连接池中的连接实例被清空,除因蓝牙协议切换导致连接池被清空外,用户可以根据实际业务需求进行处理。
在上述任一技术方案中,优选地,所述连接单元404还用于,若使用所述目标连接实例连接设备的时长达到预定时长,则重新使用所述目标连接实例连接设备,直到根据所述目标连接实例成功连接到设备或者业务类型再次发生变更时为止。
在该技术方案中,采取超时直连的方式可以跳过设备扫描阶段,从而更快地与设备建立连接。
超时直连的方式即为,每次连接设备超时后将自动重连,直到设备启动成功连接到设备或者业务类型再次发生变更。
以上结合附图详细说明了本发明的技术方案,通过本发明的技术方案,避免通过扫描、配对的方式来连接设备,从而减少了连接设备的时间,进而提高了连接设备的效率。
在本发明中,术语“第一”、“第二”仅用于描述的目的,而不能理解为指示或暗示相对重要性;术语“多个”表示两个或两个以上;术语“连接”等均应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接,还可以通过中间媒介间接连接。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。