基于分布式存储的多蓝牙控制方法、系统、终端及存储与流程

文档序号:19150789发布日期:2019-11-16 00:03阅读:193来源:国知局
基于分布式存储的多蓝牙控制方法、系统、终端及存储与流程

本发明属于蓝牙控制技术领域,尤其涉及一种基于分布式存储的多蓝牙控制方法、终端及计算机存储介质。



背景技术:

如今,人们日常生活中会同时使用多种电子设备,平板电脑通过蓝牙与多个电子设备实现一对多的控制。现有技术中,平板电脑对每一个蓝牙都新创建一个服务,在新的服务内使用蓝牙协议进行连接,然而多个服务对平板电脑的消耗较大,当平板电脑作为移动控制终端通过蓝牙连接家庭中的物联设备,例如窗帘、灯具、电视、微波炉、门窗等等时,蓝牙的数量不仅两三个,而会激增至数十个,那么传统的蓝牙控制技术将对平板电脑造成巨大功耗,占用大量的内存。因此,一种平板电脑仅创建一个服务即可实现多个蓝牙控制的技术成为一种实际需求。



技术实现要素:

本发明的目的在于提供一种基于分布式存储的多蓝牙控制方法、终端及计算机存储介质,旨在解决现有平板电脑需要创建多个服务以实现对多个蓝牙控制,而造成功耗大、内存占用高的问题。

为了解决上述技术问题,本发明提供了一种基于分布式存储的多蓝牙控制方法,其特征在于,该方法包括:

在服务中并存多个用于控制唯一设备的蓝牙协议;

保存多个与所述蓝牙协议唯一对应的特征值;

保存多个与所述特征值相关联的蓝牙信息,

终端与多个蓝牙设备相连接时,获取多个与蓝牙信息相关联的特征值,服务根据多个特征值并发运行多个蓝牙协议。

上述技术方案中,所述保存与特征值关联的蓝牙信息的步骤中,

所述蓝牙信息包括设备名称、设备类型及物理地址。

上述任一技术方案中,所述终端与多个蓝牙设备相连接时,获取多个与蓝牙信息相关联的特征值,服务根据多个特征值并发运行多个蓝牙协议的步骤中:

所述终端根据蓝牙设备的物理地址连接所述蓝牙设备。

上述任一技术方案中,终端与蓝牙设备首次连接之前,所述在服务中并存多个用于控制唯一设备的蓝牙协议;保存多个与所述蓝牙协议唯一对应的特征值;保存多个与所述特征值相关联的蓝牙信息的步骤之前还包括:

临时在服务中创建用于控制唯一设备的蓝牙协议;

临时为所述蓝牙协议创建唯一对应的特征值;

临时保存与特征值关联的蓝牙信息。

上述任一技术方案中,终端与蓝牙设备首次连接之时,所述临时在服务中创建用于控制唯一设备的蓝牙协议;临时为所述蓝牙协议创建唯一对应的特征值;临时保存与特征值关联的蓝牙信息的之后的步骤还包括:

终端与蓝牙设备连接时,获取与临时保存的蓝牙信息相关联的特征值,服务根据所述特征值运行蓝牙协议;

临时保存的所述蓝牙协议以分布式存储的形式保存于服务中。

一种基于分布式存储的多蓝牙控制系统,该系统包括:

服务单元,用于并存及运行多个蓝牙协议以控制蓝牙设备;

蓝牙协议模块,创建并存储用于控制唯一设备的蓝牙协议;

特征值模块,创建并存储与所述蓝牙协议唯一对应的特征值;

蓝牙信息模块,创建并存储与所述特征值相关联的蓝牙信息;

所述服务单元分别与蓝牙协议模块、特征值模块及蓝牙信息模块相连接。

上述任一技术方案中,所述蓝牙信息包括设备名称、设备类型及物理地址。

上述任一技术方案中,所述系统与蓝牙设备相连接时,所述系统根据蓝牙设备的物理地址连接所述蓝牙设备。

一种平板电脑控制终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一技术方案中所述系统的功能。

一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一技术方案中所述系统的功能。

本发明基于分布式存储的方式在服务中并存多个蓝牙协议,通过对每一个蓝牙协议创建唯一关联的特征值,当终端与多个蓝牙设备连接时,通过特征值在服务中并发运行相关联的多个蓝牙协议,实现对多个蓝牙设备的控制,当蓝牙设备断开连接时,服务中的蓝牙协议进行关闭自动释放变量,使得终端只需要创建一个服务即可实现对多个蓝牙设备的控制,降低了功耗,节省了内存占用,为单个平板电脑控制场景中的多个蓝牙设备建立了基础,尤其是数十个蓝牙设备的多蓝牙应用场景。

附图说明

图1是本发明实施例一的方法流程图;

图2是本发明实施例二的方法流程图;

图3是本发明实施例三的系统的结构框图;

服务单元~1,蓝牙协议模块~2,特征值模块~3,蓝牙信息模块~4,物理地址~5

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本实施例一提供一种基于分布式存储的多蓝牙控制方法,现有技术中,一个终端对多个蓝牙设备通常是通过建立多个服务,每一个服务保存并运行一个蓝牙协议的方式对多个蓝牙设备进行控制,这种传统控制方式的缺点在于多个服务会占用大量内存,存在较大功耗,在过去,一个移动终端仅连接两三个蓝牙设备的应用场景中并不会对设备造成太大负担,但是当下的智能设备越发广泛地应用于人们的日常生活中,传统的控制方式难以适应一个终端控制数十个蓝牙设备的应用场景。因此,本发明为克服现有的不足,基于分布式存储的方式,在一个服务中并存多个蓝牙协议,通过唯一关联的特征值运行控制唯一蓝牙设备的蓝牙协议,当终端与蓝牙设备断开连接时即可自动关闭服务中的蓝牙协议的进程以释放变量,当多个蓝牙设备连接终端时,终端的内存被多个蓝牙占用,当多个蓝牙设备断开连接时,与多个蓝牙设备相关联的进程自动关闭释放内存,使得终端与蓝牙设备连接时仅需维持一个服务的消耗,大大节省了功耗。

具体地,参见图1,本实施例所述控制方法包括:

步骤s10:临时在服务中创建用于控制唯一设备的蓝牙协议;

具体地,当终端与蓝牙设备首次连接时,所述终端临时在服务中创建用于控制该蓝牙设备的蓝牙协议。其可以通过以下代码实现:

privatemap<string,bluetoothgatt>mbluetoothgattmap=newhashmap<>();//临时保存bluetoothgatt

具体地,蓝牙协议是蓝牙设备间交换信息所应该遵守的规则,每一个服务包含有多个特征值,主机的通信均通过特征值来实现,特征值可以理解为一个标签,通过这个标签可以获取或者写入想要的内容,本发明中蓝牙协议即是标签对应的所要写入的内容。现有的蓝牙连接主要是bluetoothgatt(以下简称蓝牙协议)这个类型,每个蓝牙的连接都需要用独立且唯一的bluetoothgatt与蓝牙设备相对应,当蓝牙设备首次与终端连接后,终端会创建一个service(以下简称服务)与该蓝牙设备相对应,无论该蓝牙是否连接终端,该服务都会长久性地存在于终端内并占用一定内存,而当多个蓝牙与终端连接时,需要同时运行多个服务以运行该服务内蓝牙协议。当需要连接的蓝牙数量从个位数增加到十位数甚至百位数时,即使蓝牙设备并未与终端连接,这些保留的数十上百个服务也会对终端造成巨大的内存负担。本实施例中,借鉴了java中的map类型,通过key-value(以下简称分布式存储)的形式,在服务中并存多个蓝牙协议(相当于value),并为每一个蓝牙协议创建一个特征值(相当于key)。

具体地,所述并存可以理解为多个蓝牙协议为并发性连接的关系,所述服务并存有多个蓝牙协议,当终端与多个蓝牙设备连接并控制多个蓝牙设备时,服务并发性地同时运行多个蓝牙协议。所述多个蓝牙设备与终端的连接相对独立,例如电视、音箱、空调分别与平板电脑通过蓝牙相连接,在首次与三个蓝牙设备连接时,平板电脑依次保存三者的蓝牙协议,三者的蓝牙协议写入同一服务中,当电视、音箱、空调三个蓝牙设备依次启动时,服务根据三者启动的先后顺序依次启动相应的蓝牙协议,三个蓝牙协议在同一服务中运行,无需为每一个蓝牙设备单独创建服务,三个蓝牙协议占用的内存也属于进程运行时临时占用的内存,当蓝牙设备断开连接时,蓝牙协议的进程自动关闭,平板电脑不存在待命未启动状态的服务。且,当三个蓝牙协议运行时,一个服务中同时并发性地运行三个蓝牙协议的进程,比分别在三个服务中单独运行三个蓝牙协议更节约内存,节省功耗,因为服务本身的构建与维持需要占用一定的磁盘空间。

具体地,所述唯一设备指的是每一个蓝牙协议有且仅对应一个可以独立完成特定功能的电子器件,其不能为泛指多个的某一类电子器件,必须为具有唯一物理地址5的独立器件,例如平板电脑通过蓝牙控制同一品牌系列型号的电视a与电视b,需要通过蓝牙协议a和蓝牙协议b两个蓝牙协议实现控制,而不能因为电视a和电视b为同一品牌系列型号而仅通过一个蓝牙协议进行控制。

步骤s20:临时为所述蓝牙协议创建唯一对应的特征值;

具体地,当终端与该蓝牙设备首次连接时,需要为该蓝牙设备的蓝牙协议创建一唯一与该蓝牙协议对应的特征值,其可以通过以下代码实现:

privatemap<string,bluetoothgattcharacteristic>mgattcharacteristicmap=newhashmap<>();//临时保存蓝牙的特征值characteristic

具体地,服务中保存多个与所述蓝牙协议唯一对应的特征值,多个特征值与多个蓝牙协议一一对应,每一个蓝牙设备对应一个唯一的蓝牙协议,每一个唯一的蓝牙协议对应一个特征值,在写入服务中时,每一个特征值相当于于每一个蓝牙协议的标签,服务通过该标签启动相对应的蓝牙协议。

步骤s30:临时保存与特征值关联的蓝牙信息。

具体地,服务中保存多个与所述特征值相关联的蓝牙信息,所述蓝牙信息包括devicename、devicetype、startcmd、stopcmd等,所述蓝牙信息可以是用户自己设置的蓝牙信息,例如蓝牙设备的设备名称、设备类型、启动命令符以及停止命令符等。

进一步地,本发明的蓝牙信息还包括蓝牙设备的物理地址5,平板电脑通过蓝牙设备的物理地址5判断该蓝牙设备的身份,可以认为物理地址5是固化于蓝牙设备中的特征值,特征值是蓝牙设备定义于服务中的特定标签,自然地,所述物理地址5与所述特征值相对应。其写入的代码实现形式如下:

privatemap<string,bluetoothinfo>mbluetoothinfomap=newhashmap<>();//临时保存自己设置的蓝牙信息(devicename、devicetype、startcmd、stopcmd等)

privatemap<bluetoothgatt,string>mdevicetypemap=newhashmap<>();//临时存储devicetype

privatemap<string,ggbledeviceentity>mconnectmodelmap=newhashmap<>();//临时存储已连接的设备

步骤s40:终端与蓝牙设备连接时,获取与临时保存的蓝牙信息相关联的特征值,服务根据所述特征值运行蓝牙协议;临时保存的所述蓝牙协议以分布式存储的形式保存于服务中。其可以通过以下代码形式实现:

具体地,首次连接时,所述终端根据蓝牙设备的mac地址(即物理地址5)获取蓝牙设备,所述服务根据临时保存的特征值运行相对应的蓝牙协议控制蓝牙设备,并将特征值与蓝牙协议以key-value(分布式存储)的形式临时保存起来,当终端与多个蓝牙设备连接时,多个以分布式存储的形式保存的蓝牙协议在同一服务中并发式运行,当终端关闭某个蓝牙协议时,该蓝牙协议的进程释放变量,而其他蓝牙协议照常在服务中运行。

实施例二

参见图2,本实施例与实施例一的区别在于,步骤s10临时在服务中创建用于控制唯一设备的蓝牙协议;s20临时为所述蓝牙协议创建唯一对应的特征值;s30临时保存与特征值关联的蓝牙信息。s40终端与蓝牙设备连接时,获取与临时保存的蓝牙信息相关联的特征值,服务根据所述特征值运行蓝牙协议;临时保存的所述蓝牙协议以分布式存储的形式保存于服务中。之后的步骤还包括:

步骤s50:在服务中并存多个用于控制唯一设备的蓝牙协议;

步骤s60:保存多个与所述蓝牙协议唯一对应的特征值;

步骤s70:保存多个与所述特征值相关联的蓝牙信息,

步骤s80:终端与多个蓝牙设备相连接时,获取多个与蓝牙信息相关联的特征值,服务根据多个特征值并发运行多个蓝牙协议。

具体地,步骤s50中,在蓝牙设备与终端首次连接之后,所述终端的服务中并存有多个蓝牙协议,所述多个蓝牙协议用于控制多个蓝牙设备,所述多个蓝牙设备与终端的连接相对独立,例如电视、音箱、空调分别与平板电脑通过蓝牙相连接,在首次与三个蓝牙设备连接时,平板电脑依次保存三者的蓝牙协议,三者的蓝牙协议写入同一服务中,当电视、音箱、空调三个蓝牙设备依次启动时,服务根据三者启动的先后顺序依次启动相应的蓝牙协议,三个蓝牙协议在同一服务中运行,无需为每一个蓝牙设备单独创建服务,三个蓝牙协议占用的内存也属于进程运行时临时占用的内存,当蓝牙设备断开连接时,蓝牙协议的进程自动关闭,平板电脑不存在待命未启动状态的服务。且,当三个蓝牙协议运行时,一个服务中同时并发性地运行三个蓝牙协议的进程,比分别在三个服务中单独运行三个蓝牙协议更节约内存,节省功耗。

具体地,步骤s60中,在蓝牙设备与终端首次连接之后,所述终端的服务中并存有多个蓝牙协议,所述多个蓝牙协议对应多个特征值,多个特征值与多个蓝牙协议一一对应,每一个蓝牙设备对应一个唯一的蓝牙协议,每一个唯一的蓝牙协议对应一个特征值,在写入服务中时,每一个特征值相当于于每一个蓝牙协议的标签,服务通过该标签启动相对应的蓝牙协议。

具体地,步骤s70中,所述特征值与蓝牙信息相关联,所述蓝牙信息包括蓝牙设备的名称、设备型号以及蓝牙设备的物理地址5,当蓝牙设备的蓝牙通信器启动时,终端通过蓝牙设备的物理地址5关联至特征值,并通过特征值启动蓝牙协议。

具体地,步骤s80中,当终端与多个蓝牙设备连接时,终端获取与该多个蓝牙设备的蓝牙信息相关联的多个特征值,服务根据多个特征值并发运行多个蓝牙协议实现对蓝牙设备的控制。多个执行控制的蓝牙协议进程在同一服务中运行,比现有技术中在多个服务中分别运行蓝牙协议更加节能。

实施例三

参见图3,本实施例提供一种基于分布式存储的多蓝牙控制系统,该系统用于实现实施例一与实施例二所述的方法,该系统包括:

服务单元1,用于并存及运行多个蓝牙协议以控制蓝牙设备;

具体地,服务单元1可以理解为一个服务,在现有的终端连接蓝牙中,通常有多个服务,例如无线耳机服务、无线音箱服务等,每个服务中又包含多个特征值。每个具体的特征值才是蓝牙通信的主题。比如当前的电量是80%,所以会通过电量的特征值存在终端的文件里,这样终端就可以通过这个特征值来读取80%这个数据。本实施例中,服务单元1相当于集成平板电脑的cpu中以软件算法的形式实现蓝牙协议和特征值存储及运行的单元模块。

蓝牙协议模块2,创建并存储用于控制唯一设备的蓝牙协议;

具体地,所述蓝牙协议模块2指的是服务中用于存储及运行蓝牙协议的单元模块,把服务和特征的遗迹对应的数据保存在一个查找表中,次查找表使用16bitid作为每一项的索引。一旦终端与蓝牙设备建立起了连接,蓝牙协议就开始起作用。

特征值模块3,创建并存储与所述蓝牙协议唯一对应的特征值;

具体地,终端与蓝牙设备的通信通过特征值来实现,特征值可以理解为一个标签,通过这个标签可以获取或者写入想要的内容。所述特征值模块3可以认为是服务中创建并存储所述特征值的单元模块。

蓝牙信息模块4,创建并存储与所述特征值相关联的蓝牙信息;

具体地,每一个蓝牙设备至少包含一个物理地址5作为其唯一识别号,本发明中,蓝牙信息还包括蓝牙设备的设备名称、设备型号等,当蓝牙设备的蓝牙通信器启动时,终端通过蓝牙设备的物理地址5关联至特征值,并通过特征值启动蓝牙协议。

具体地,所述服务单元1分别与蓝牙协议模块2、特征值模块3及蓝牙信息模块4相连接。

实施例四

本实施例四提供一种平板电脑控制终端,该控制终端用于实现实施例一至实施例二所述任一方法。

其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如实施例一和二所述的功能。

示例性的,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行,以完成本发明。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在用户终端中的执行过程。

本领域技术人员可以理解,上述控制终端的描述仅仅是示例,并不构成对控制终端的限定,可以包括比上述描述更多或更少的部件,或者组合某些部件,或者不同的部件,例如可以包括输入输出设备、网络接入设备、总线等。

具体地,所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。

进一步地,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述控制终端的控制中心,利用各种接口和线路连接整个控制终端的各个部分。

具体地,所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述控制终端的各种功能。

进一步地,所述存储器可主要包括存储程序区和存储数据区。

其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

具体地,所述控制终端集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述方法实施例的步骤。

其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。

藉此,本发明基于分布式存储的方式在服务中并存多个蓝牙协议,通过对每一个蓝牙协议创建唯一关联的特征值,当终端与多个蓝牙设备连接时,通过特征值在服务中并发运行相关联的多个蓝牙协议,实现对多个蓝牙设备的控制,当蓝牙设备断开连接时,服务中的蓝牙协议进行关闭自动释放变量,使得终端只需要创建一个服务即可实现对多个蓝牙设备的控制,降低了功耗,节省了内存占用,为单个平板电脑控制场景中的多个蓝牙设备建立了基础,尤其是数十个蓝牙设备的多蓝牙应用场景。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1