蓝牙组网方法、装置、电子设备和计算机可读存储介质与流程

专利查询2023-9-4  111


蓝牙组网方法、装置、电子设备和计算机可读存储介质
【技术领域】
1.本发明涉及蓝牙领域,尤其涉及一种蓝牙组网方法、装置、电子设备和计算机可读存储介质。


背景技术:

2.在蓝牙技术中,第一蓝牙设备的蓝牙功能被打开后,会进行蓝牙广播,以供第二蓝牙设备扫描连接。如果第二蓝牙设备曾与多个第一蓝牙设备建立蓝牙连接,当该第二蓝牙设备和所述多个第一蓝牙设备同时开启蓝牙功能时,该第二蓝牙设备会默认与所述多个第一蓝牙设备进行蓝牙连接。但是,用户未必会使用到每条蓝牙连接链路。该方法易造成资源占用,对连接效率造成影响。


技术实现要素:

3.有鉴于此,本发明实施例提供了一种蓝牙组网方法、装置、电子设备和计算机可读存储介质,以克服相关技术中用户使用不到的蓝牙连接链路造成资源占用,对连接效率造成影响的问题。
4.为实现以上目的,本技术采用如下技术方案:
5.第一方面,本发明实施例提供了一种蓝牙组网方法,应用于至少一个第一蓝牙设备,包括:
6.在蓝牙广播关闭状态下,扫描第二蓝牙设备广播的蓝牙连接请求;
7.当扫描到所述蓝牙连接请求时,判断所述蓝牙连接请求是否携带功能码;
8.若所述蓝牙连接请求携带功能码,则根据所述功能码开启对应的所述第一蓝牙设备的蓝牙广播。
9.其中一种可能的实现方式中,
10.所述功能码携带所述第二蓝牙设备支持连接的第一蓝牙设备的mac地址信息、名称信息和类型信息中的一项或多项。
11.其中一种可能的实现方式中,若所述蓝牙连接请求携带功能码,则根据所述功能码开启对应的所述第一蓝牙设备的蓝牙广播,包括:
12.根据所述功能码的类型,确定开启蓝牙广播的所述第一蓝牙设备的范围,
13.其中,第一类型的功能码用于开启每个扫描到所述蓝牙连接请求的所述第一蓝牙设备的蓝牙广播;
14.第二类型的功能码携带多个所述第一蓝牙设备的mac地址,用于开启与所述第二类型的功能码携带的mac地址匹配的所述第一蓝牙设备的蓝牙广播;
15.第三类型的功能码携带一个所述第一蓝牙设备的完整mac地址,用于开启与所述第三类型的功能码携带的mac地址一致的所述第一蓝牙设备的蓝牙广播。
16.其中一种可能的实现方式中,当扫描到所述蓝牙连接请求时,判断所述蓝牙连接请求是否携带功能码,包括:
17.当扫描到所述蓝牙连接请求时,如果所述蓝牙连接请求携带的来源标识为预设来源标识,则判断所述蓝牙连接请求是否携带功能码。
18.其中一种可能的实现方式中,若所述蓝牙连接请求携带功能码,则根据所述功能码开启对应的所述第一蓝牙设备的蓝牙广播,包括:
19.从开启蓝牙广播的第一时刻开始倒计时;
20.如果在所述倒计时结束前接收到所述第二蓝牙设备发送的连接建立成功信息,或者,所述倒计时结束,则关闭蓝牙广播。
21.其中一种可能的实现方式中,所述方法还包括:
22.接收到所述连接建立成功信息后,如果在预设时长内未接收到所述第二蓝牙设备发送的预设格式的数据,则断开与所述第二蓝牙设备的连接。
23.其中一种可能的实现方式中,
24.所述第二蓝牙设备包括终端设备和/或网关设备,所述第一蓝牙设备包括物联网节点设备。
25.其中一种可能的实现方式中,所述方法还包括:
26.与所述第二蓝牙设备建立连接后,如果通过应用层区域的蓝牙应用程序接收到所述第二蓝牙设备发送的蓝牙升级指令,则通过空中下载ota区域的蓝牙应用程序与所述第二蓝牙设备重新建立连接;
27.当通过所述ota区域的蓝牙应用程序接收到所述第二蓝牙设备发送的应用层擦除指令时,擦除所述应用层区域的数据;
28.在所述应用层区域的数据擦除成功后,通过所述ota区域的蓝牙应用程序,从所述第二蓝牙设备下载蓝牙协议栈数据至所述应用层区域;
29.如果所述应用层区域与协议栈区域存储的蓝牙协议栈数据的版本号不同,则将所述协议栈区域的蓝牙协议栈数据替换为所述应用层区域的蓝牙协议栈数据;
30.通过所述ota区域的蓝牙应用程序,从所述第二蓝牙设备下载蓝牙应用程序至所述应用层区域。
31.其中一种可能的实现方式中,通过所述ota区域的蓝牙应用程序,从所述第二蓝牙设备下载蓝牙协议栈数据至所述应用层区域之后,还包括:
32.如果所述应用层区域与协议栈区域存储的蓝牙协议栈数据的版本号相同,则通过所述ota区域的蓝牙应用程序,从所述第二蓝牙设备下载蓝牙应用程序至所述应用层区域。
33.其中一种可能的实现方式中,
34.所述第二蓝牙设备包括终端设备,所述第一蓝牙设备包括物联网节点设备和/或网关设备。
35.第二方面,本发明实施例提供一种蓝牙组网装置,应用于至少一个第一蓝牙设备,包括:
36.扫描模块,用于在蓝牙广播关闭状态下,扫描第二蓝牙设备广播的蓝牙连接请求;
37.判断模块,用于当扫描到所述蓝牙连接请求时,判断所述蓝牙连接请求是否携带的功能码;
38.广播模块,用于若所述蓝牙连接请求携带功能码,则根据所述功能码开启对应的所述第一蓝牙设备的蓝牙广播。
39.第三方面,本发明实施例提供一种电子设备,包括:
40.至少一个处理器;以及
41.与所述处理器通信连接的至少一个存储器,其中:
42.所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面提供的方法。
43.第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行第一方面所述的方法。
44.应当理解的是,本发明实施例的第二~第四方面与本发明实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
45.本发明实施例提供的蓝牙组网方法、装置、电子设备和计算机可读存储介质至少包括以下效果:
46.第一蓝牙设备在扫描到来自第二蓝牙设备的蓝牙连接请求时,根据蓝牙连接请求是否携带功能码,判断是否开启蓝牙广播以供第二蓝牙设备进行连接,克服了相关技术中用户使用不到的蓝牙连接链路造成资源占用,对连接效率造成影响的问题。同时,第一蓝牙设备与第二蓝牙设备建立连接后,可以通过第二蓝牙设备点对点地对蓝牙协议栈和蓝牙应用程序进行无线升级,可以大大的减少工作成本。
【附图说明】
47.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
48.图1为本发明实施例提供的一种蓝牙组网系统的示意图;
49.图2为本发明实施例提供的一种蓝牙组网方法的流程图;
50.图3为本发明实施例提供的另一种蓝牙组网方法的流程图;
51.图4为本发明实施例提供的再一种蓝牙组网方法的流程图;
52.图5为本发明实施例提供的一种第一蓝牙设备的分区示意图;
53.图6为本发明实施例提供的又一种蓝牙组网方法的流程图;
54.图7为本发明实施例提供的一种蓝牙组网装置的示意图;
55.图8为本发明实施例提供的另一种蓝牙组网装置的示意图;
56.图9为本发明实施例提供的一种电子设备的结构示意图。
【具体实施方式】
57.为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
58.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
59.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制
本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
60.相关技术中,蓝牙设备的蓝牙功能开启后,会默认与曾经连接过的蓝牙设备建立连接,该方法易造成资源占用,对连接效率造成影响。本发明实施例提供的蓝牙组网方法中,第一蓝牙设备在扫描到来自第二蓝牙设备的蓝牙连接请求时,根据蓝牙连接请求是否携带功能码,判断是否开启蓝牙广播以供第二蓝牙设备进行连接,克服了相关技术中用户使用不到的蓝牙连接链路造成资源占用,对连接效率造成影响的问题。
61.图1为本发明实施例提供的一种蓝牙组网系统的示意图。如图1所示,所述系统包括终端设备1、网关设备2和物联网节点设备3。其中,物联网节点设备3包括但不限于温度传感器和/或湿度传感器等。
62.在一种可能的蓝牙组网方式(图示

号组网方式)中,终端设备1可以通过网关设备2,与物联网节点设备3建立蓝牙连接。即,网关设备2主从一体(有利于降低生产成本):在终端设备1与网关设备2的蓝牙连接中,终端设备1作为第二蓝牙设备,网关设备2作为第一蓝牙设备;在网关设备2与物联网节点设备3的蓝牙连接中,网关设备2作为第二蓝牙设备,物联网节点设备3作为第一蓝牙设备。在该组网方式中,每个终端设备1可以与n个网关设备2相连,每个网关设备2也可以与n个终端设备1相连;每个网关设备2可以与n个物联网节点设备3相连,每个物联网节点设备3也可以与n个网关设备2相连。
63.在另一种可能的蓝牙组网方式(图示

号组网方式)中,终端设备1可以直接与物联网节点设备3建立蓝牙连接,其中,终端设备1作为第二蓝牙设备,物联网节点设备3作为第一蓝牙设备。在该组网方式中,每个终端设备1可以与n个物联网节点设备3相连,每个物联网节点设备3也可以与n个终端设备1相连。
64.上述两种组网方式中,终端设备1可以通过蓝牙连接,获取物联网节点设备3采集的相关数据,并将相关数据通过4g网络或其他无线通信方式上传至云端设备,以供云端设备对相关数据进行进一步地分析,通过提供两种组网方式的选择,可以更好地为用户提供对产品的多样化选择。
65.图2为本发明实施例提供的一种蓝牙组网方法的流程图,应用于至少一个第一蓝牙设备。如图2所示,上述方法包括:
66.步骤101,在蓝牙广播关闭状态下,扫描第二蓝牙设备广播的蓝牙连接请求。
67.需要说明的是,本方法的执行主体可以为图1所示的物联网节点设备。而第二蓝牙设备可以为图1所示的终端设备和/或网关设备。第一蓝牙设备的蓝牙开关被打开后,令蓝牙广播保持关闭状态,同时开启蓝牙扫描,对第二蓝牙设备广播的蓝牙连接请求进行扫描。
68.步骤102,当扫描到蓝牙连接请求时,判断蓝牙连接请求是否携带功能码。
69.具体地,当第一蓝牙设备扫描到第二蓝牙设备广播的蓝牙连接请求后,首先需要确定蓝牙连接请求携带的来源标识是否为预设来源标识,以防非预设来源标识的第二蓝牙设备触发第一蓝牙设备的蓝牙广播。例如,当来源标识用于指示第二蓝牙设备的来源公司时,通过识别来源标识,可以防止与第一蓝牙设备的来源公司不一致的第二蓝牙设备触发第一蓝牙设备的蓝牙广播。
70.如果蓝牙连接请求携带的来源标识为预设来源标识,则进一步判断蓝牙连接请求是否携带功能码。其中,功能码用于表征第二蓝牙设备的连接需求。作为一种可选方案,功
能码可以携带第二蓝牙设备支持连接的第一蓝牙设备的mac地址信息、名称信息和类型信息中的一项或多项。
71.步骤103,若蓝牙连接请求携带功能码,则根据功能码开启对应的第一蓝牙设备的蓝牙广播。
72.具体地,可以根据所述功能码的类型,确定开启蓝牙广播的第一蓝牙设备的范围。
73.根据前述说明可知,功能码用于表征第二蓝牙设备的连接需求。第二蓝牙设备需要连接的每个第一蓝牙设备在执行前述步骤后,都需要开启蓝牙广播,以供第二蓝牙设备进行扫描链接。
74.作为一种可选方案,功能码可以被分为3种类型。第一类型的功能码用于连接所有扫描到蓝牙连接请求的第一蓝牙设备;第二类型的功能码携带多个第一蓝牙设备的mac地址,用于连接所述多个第一蓝牙设备;第三类型的功能码携带一个第一蓝牙设备的完整mac地址,用于与所述一个第一蓝牙设备进行点对点连接。
75.需要说明的是,由于第二类型的功能码用于与多个第一蓝牙设备进行连接,为节省资源,第二类型的功能码可以携带所述多个第一蓝牙设备的部分mac地址,例如所述多个第一蓝牙设备的后6位mac地址。只要是mac地址与第二类型的功能码所携带的mac地址相匹配的第一蓝牙设备,在执行前述步骤后都可以开启蓝牙广播。而第三类型的功能码用于与一个第一蓝牙设备进行点对点连接,因此可以携带所述一个第一蓝牙设备的完整mac地址。在一实施方式中,第二类型的功能码还可以携带个数信息,其中,个数信息用于表征第二蓝牙设备需要连接的第一蓝牙设备的个数。
76.开启蓝牙广播的第一蓝牙设备,可以通过蓝牙广播发送蓝牙连接响应,其中,蓝牙连接响应包括第一蓝牙设备的蓝牙名称和mac地址等设备标识。当第二蓝牙设备扫描到蓝牙连接响应后,可以根据第一蓝牙设备的设备标识,与第一蓝牙设备建立蓝牙连接。
77.另外,第一蓝牙设备还可以在开启蓝牙广播的第一时刻开始倒计时,如果在倒计时结束前接收到第二蓝牙设备发送的连接建立成功信息,或者,倒计时结束,则关闭蓝牙广播,以避免被其他蓝牙设备误连。
78.在与广播蓝牙连接请求的第二蓝牙设备成功建立蓝牙连接后,如果一段时间内未接收到第二蓝牙设备发送的预设格式的数据,可以认为本条蓝牙链路暂无使用需求,则主动断开与第二蓝牙设备的蓝牙连接,从而节约蓝牙链路资源。
79.本发明实施例提供的蓝牙组网方法中,第一蓝牙设备开启蓝牙功能后,先使蓝牙广播保持关闭状态,当确定有第二蓝牙设备需要与其进行蓝牙连接时,再开启蓝牙广播,并通过蓝牙广播发送蓝牙连接响应,以供第二蓝牙设备扫描连接。该方法通过对第一蓝牙设备蓝牙广播开启条件的限制,简化了第二蓝牙设备的扫描列表,可以有效提高蓝牙连接效率和蓝牙组网的连接安全性。
80.图3为本发明实施例提供的另一种蓝牙组网方法的流程图,应用于第一蓝牙设备,包括:
81.步骤201,在蓝牙广播关闭状态下,扫描第二蓝牙设备广播的蓝牙连接请求。
82.步骤202,扫描到第二蓝牙设备广播的蓝牙连接请求时,确定蓝牙连接请求携带的来源标识是否为预设来源标识。
83.具体地,当第一蓝牙设备扫描到第二蓝牙设备广播的蓝牙连接请求后,首先需要
确定蓝牙连接请求携带的来源标识是否为预设来源标识,以防非预设来源标识的第二蓝牙设备触发第一蓝牙设备的蓝牙广播。例如,当来源标识用于指示第二蓝牙设备的来源公司时,通过识别来源标识,可以防止与第一蓝牙设备的来源公司不一致的第二蓝牙设备触发第一蓝牙设备的蓝牙广播。
84.若是,继续执行步骤203,否则返回步骤201。
85.步骤203,根据承载蓝牙连接请求的蓝牙广播包携带的第二蓝牙设备的mac地址,判断是否接收到n个来自同一第二蓝牙设备的蓝牙广播包,以确定是否接收到完整的蓝牙连接请求。
86.若是,继续执行步骤204,否则返回步骤201。
87.需要说明的是,一个蓝牙广播包所包含的字节数是有限的。当蓝牙连接请求包含的信息过多时,第二蓝牙设备可能需要将该蓝牙连接请求拆分为多个蓝牙广播包,并将所述多个蓝牙广播包按顺序发送给第一蓝牙设备。由于每个第一蓝牙设备可以同时与多个第二蓝牙设备连接,第一蓝牙设备可能接收到多个第二蓝牙设备的蓝牙广播包。此时,第一蓝牙设备需要根据接收到的每个蓝牙广播包中的第二蓝牙设备的mac地址,判断是否接收到n个来自同一第二蓝牙设备的蓝牙广播包,以确定是否接收到该第二蓝牙设备发送的完整的蓝牙连接请求。优选地,n=2。
88.步骤204,判断蓝牙连接请求携带的type标识是否为指定type标识。
89.若是,继续执行步骤205,否则返回步骤201。
90.需要说明的是,只有指定type标识的蓝牙连接请求才携带用于表征第二蓝牙设备的连接需求的功能码。如果type标识为非指定type标识,则可以直接结束蓝牙组网流程,并返回步骤201。
91.步骤205,根据蓝牙连接请求携带的功能码,确定是否与广播蓝牙连接请求的第二蓝牙设备建立连接,其中,功能码用于表征第二蓝牙设备的连接需求。
92.功能码的相关内容已于图1所实施实例下详细说明,在此不再赘述。如果需要与第二蓝牙设备建立连接,则继续执行步骤206,否则返回步骤201。
93.步骤206,开启蓝牙广播,并通过蓝牙广播发送蓝牙连接响应,蓝牙连接响应包括第一蓝牙设备的设备标识。
94.步骤207,判断从开启蓝牙广播的第一时刻开始的倒计时是否结束。
95.若是,继续执行步骤208,否则继续执行步骤209。
96.步骤208,关闭蓝牙广播。
97.关闭蓝牙广播后返回步骤201。
98.步骤209,确定是否接收到第二蓝牙设备通过蓝牙连接发送的连接建立成功信息。
99.若是,执行步骤208;否则返回步骤207。
100.图4为本发明实施例提供的再一种蓝牙组网方法的流程图,应用于至少一个第一蓝牙设备。如图4所示,上述方法还包括:
101.步骤301,与第二蓝牙设备建立连接后,如果通过应用层区域的蓝牙应用程序接收到第二蓝牙设备发送的蓝牙升级指令,则通过ota区域的蓝牙应用程序与第二蓝牙设备重新建立连接。
102.需要说明的是,本方法中的执行主体为已经与第二蓝牙设备建立蓝牙连接的第一
蓝牙设备,第一蓝牙设备可以为图1所示的物联网节点设备和/或网关设备。而第二蓝牙设备可以为图1所示的终端设备。
103.如图5所示,第一蓝牙设备包括应用层区域、空中下载(over the air,ota)区域、协议栈区域和引导(boot)区域,其中,应用层区域和ota区域均存储有蓝牙应用程序。
104.通常,第一蓝牙设备基于应用层区域的蓝牙应用程序,与第二蓝牙设备建立蓝牙连接。但是,在后续对蓝牙应用程序和蓝牙协议栈数据的升级过程中,需要擦除应用层区域的数据,应用层区域的蓝牙应用程序无法支持第一蓝牙设备完成蓝牙升级。因此,当第一蓝牙设备通过应用层区域的蓝牙应用程序,接收到第二蓝牙设备发送的蓝牙升级指令后,需要通过ota区域的蓝牙应用程序与第二蓝牙设备重新建立连接,并基于ota区域的蓝牙应用程序实现后续步骤中与第二蓝牙设备的交互。
105.步骤302,当通过ota区域的蓝牙应用程序接收到第二蓝牙设备发送的应用层擦除指令时,擦除应用层区域的数据。
106.第一蓝牙设备基于ota区域的蓝牙应用程序,与第二蓝牙设备成功建立连接后,可以通过ota区域的蓝牙应用程序,接收到第二蓝牙设备发送的应用层擦除指令。第一蓝牙设备根据应用层擦除指令,擦除应用层区域的数据,并在擦除成功后通过ota区域的蓝牙应用程序,向第二蓝牙设备返回应用层擦除成功响应。
107.步骤303,在应用层区域的数据擦除成功后,通过ota区域的蓝牙应用程序,从第二蓝牙设备下载蓝牙协议栈数据至应用层区域。
108.第一蓝牙设备通过ota区域的蓝牙应用程序,向第二蓝牙设备返回应用层擦除成功响应之后,可以通过ota区域的蓝牙应用程序,从第二蓝牙设备下载蓝牙协议栈数据至应用层区域。
109.需要说明的是,在从第二蓝牙设备下载新的蓝牙协议栈数据时,需要使用到协议栈区域存储的原有的蓝牙协议栈数据。因此,本发明实施例未将新的蓝牙协议栈数据直接下载至协议栈区域,并使用新的蓝牙协议栈数据替换原有的蓝牙协议栈数据;而是先清空应用层区域,并将新下载的蓝牙协议栈数据暂存至应用层区域,以节省空间。
110.步骤304,如果应用层区域与协议栈区域存储的蓝牙协议栈数据的版本号不同,则将协议栈区域的蓝牙协议栈数据替换为应用层区域的蓝牙协议栈数据。
111.具体地,步骤303执行完毕后,第一蓝牙设备将会跳转执行boot区域存储的引导程序。而引导程序将会对应用层区域存储的数据进行识别,如果应用层区域存储的数据为蓝牙应用程序,则结束蓝牙升级流程;如果应用层区域存储的数据为蓝牙协议栈数据,则会进一步对比应用层区域的蓝牙协议栈数据和协议栈区域的蓝牙协议栈数据的版本号。
112.如果版本号不同,则先擦除协议栈区域的数据,再将应用层区域的蓝牙协议栈数据写入协议栈区域,并在写入成功后继续执行步骤305;如果版本号相同,则直接执行步骤305。
113.步骤305,通过ota区域的蓝牙应用程序,从第二蓝牙设备下载蓝牙应用程序至应用层区域。
114.具体地,由于步骤305之前,应用层区域的蓝牙应用程序被擦除,因此本步骤中,第一蓝牙设备需要通过ota区域的蓝牙应用程序,从第二蓝牙设备下载蓝牙应用程序至应用层区域,以实现对蓝牙应用程序的升级。
115.通过步骤301-步骤305所述的方法,第一蓝牙设备在蓝牙应用程序和/或蓝牙协议栈出现故障时,可以通过与第二蓝牙设备的蓝牙连接,以点对点更新的方式,实现对蓝牙应用程序和蓝牙协议栈的升级。该方法可以简化升级环境,降低工作成本。
116.图6为本发明实施例提供的又一种蓝牙组网方法的流程图,应用于第一蓝牙设备,包括:
117.步骤401,通过应用层区域的蓝牙应用程序与第二蓝牙设备建立连接后,如果通过应用层区域的蓝牙应用程序接收到第二蓝牙设备发送的蓝牙升级指令,则通过ota区域的蓝牙应用程序与第二蓝牙设备重新建立连接。
118.步骤402,确定预设时间内是否通过ota区域的蓝牙应用程序接收到第二蓝牙设备发送的应用层擦除指令。
119.若是,继续执行步骤403;否则结束蓝牙升级流程。需要说明的是,在本发明实施例中,结束蓝牙升级流程后,即跳转执行应用层区域的蓝牙应用程序。
120.步骤403,根据应用层擦除指令,擦除应用层区域的数据。
121.步骤404,确定是否成功擦除应用层区域的数据。
122.若是,则继续执行步骤405;否则返回步骤403。
123.步骤405,通过ota区域的蓝牙应用程序,向第二蓝牙设备返回应用层擦除成功响应。
124.步骤406,通过ota区域的蓝牙应用程序,从第二蓝牙设备下载蓝牙协议栈数据至应用层区域。
125.步骤407,跳转执行boot区域的引导程序。
126.步骤408,根据引导程序,确定应用层区域的数据类型。
127.如果应用层区域的数据类型为蓝牙协议栈数据,则继续执行步骤409;如果应用层区域的数据类型为蓝牙应用程序,则结束蓝牙升级流程。
128.步骤409,判断应用层区域与协议栈区域存储的蓝牙协议栈数据的版本号是否相同。
129.若是,则继续执行步骤412;否则继续执行步骤410。
130.步骤410,擦除协议栈区域的数据。
131.步骤411,协议栈区域的数据擦除成功后,将应用层区域的蓝牙协议栈数据写入协议栈区域。
132.本步骤执行完毕后,返回步骤409。
133.步骤412,通过ota区域的蓝牙应用程序,从第二蓝牙设备下载蓝牙应用程序至应用层区域。
134.本步骤执行完毕后,即可结束蓝牙升级流程。
135.图7为本发明实施例提供的一种蓝牙组网装置的示意图。如图7所示,上述蓝牙组网装置应用于至少一个第一蓝牙设备,可以包括:
136.扫描模块51,用于在蓝牙广播关闭状态下,扫描第二蓝牙设备广播的蓝牙连接请求。
137.判断模块52,用于当扫描到所述蓝牙连接请求时,判断所述蓝牙连接请求是否携带功能码。
138.广播模块53,用于若所述蓝牙连接请求携带功能码,则根据所述功能码开启对应的所述第一蓝牙设备的蓝牙广播。
139.所述广播模块53,具体用于根据所述功能码的类型,确定开启蓝牙广播的所述第一蓝牙设备的范围,其中,第一类型的功能码用于开启每个扫描到所述蓝牙连接请求的所述第一蓝牙设备的蓝牙广播;第二类型的功能码携带多个第一蓝牙设备的mac地址,用于开启与所述第二类型的功能码携带的mac地址匹配的所述第一蓝牙设备的蓝牙广播,第三类型的功能码携带一个所述第一蓝牙设备的完整mac地址,用于开启与所述第三类型的功能码携带的mac地址一致的所述第一蓝牙设备的蓝牙广播。
140.所述判断模块52,具体用于当扫描到所述蓝牙连接请求时,如果所述蓝牙连接请求携带的来源标识为预设来源标识,则判断所述蓝牙连接请求是否携带功能码。
141.所述广播模块53,具体用于从开启蓝牙广播的第一时刻开始倒计时:如果在所述倒计时结束前接收到所述第二蓝牙设备发送的连接建立成功信息,或者,所述倒计时结束,则关闭蓝牙广播。
142.所述判断模块52,还用于接收到所述连接建立成功信息后,如果在预设时长内未接收到所述第二蓝牙设备发送的预设格式的数据,则断开与所述第二蓝牙设备的连接。
143.图7所示实施例提供的蓝牙组网装置可用于执行本发明图2和图3所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
144.图8为本发明实施例提供的另一种蓝牙组网装置的示意图。如图8所示,上述蓝牙组网装置应用于至少一个第一蓝牙设备,可以包括:
145.重新连接模块61,与所述第二蓝牙设备建立连接后,如果通过应用层区域的蓝牙应用程序接收到所述第二蓝牙设备发送的蓝牙升级指令,则通过空中下载ota区域的蓝牙应用程序与所述第二蓝牙设备重新建立连接。
146.擦除模块62,用于当通过所述ota区域的蓝牙应用程序接收到所述第二蓝牙设备发送的应用层擦除指令时,擦除所述应用层区域的数据。
147.下载模块63,用于在所述应用层区域的数据擦除成功后,通过所述ota区域的蓝牙应用程序,从所述第二蓝牙设备下载蓝牙协议栈数据至所述应用层区域。
148.版本比较模块64,用于如果所述应用层区域与协议栈区域存储的蓝牙协议栈数据的版本号不同,则将所述协议栈区域的蓝牙协议栈数据替换为所述应用层区域的蓝牙协议栈数据。
149.所述下载模块63,还用于通过所述ota区域的蓝牙应用程序,从所述第二蓝牙设备下载蓝牙应用程序至所述应用层区域。
150.所述下载模块63,还用于如果所述应用层区域与协议栈区域存储的蓝牙协议栈数据的版本号相同,则通过所述ota区域的蓝牙应用程序,从所述第二蓝牙设备下载蓝牙应用程序至所述应用层区域。
151.图8所示实施例提供的蓝牙升级装置可用于执行本发明图4和图6所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
152.图9为本发明实施提供的一种电子设备的结构示意图。图9显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
153.如图9所示,上述电子设备可以包括至少一个处理器;以及与上述处理器通信连接
的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,上述处理器调用上述程序指令能够执行本发明图2-图6所示实施例提供的蓝牙组网方法。电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器410,通信接口420,存储器430,以及连接不同系统组件(包括存储器430和处理单元410)的通信总线440。
154.通信总线440表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industry standard architecture;以下简称:isa)总线,微通道体系结构(micro channel architecture;以下简称:mac)总线,增强型isa总线、视频电子标准协会(video electronics standards association;以下简称:vesa)局域总线以及外围组件互连(peripheral component interconnection;以下简称:pci)总线。
155.电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
156.存储器430可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(random access memory;以下简称:ram)和/或高速缓存存储器。电子设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。存储器430可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
157.具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器430中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本发明所描述的实施例中的功能和/或方法。
158.处理器410通过运行存储在存储器430中的程序,从而执行各种功能应用以及数据处理,例如实现本发明图2-图6所示实施例提供的蓝牙组网方法。
159.本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行本发明图2-图6所示实施例提供的蓝牙组网方法。
160.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
161.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。
162.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在
涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(local area network;以下简称:lan)或广域网(wide area network;以下简称:wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
163.上述对本发明特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
164.在本发明的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本发明中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本发明中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
165.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
166.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
167.取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
168.在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
169.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
170.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

技术特征:
1.一种蓝牙组网方法,其特征在于,应用于至少一个第一蓝牙设备,包括:在蓝牙广播关闭状态下,扫描第二蓝牙设备广播的蓝牙连接请求;当扫描到所述蓝牙连接请求时,判断所述蓝牙连接请求是否携带功能码;若所述蓝牙连接请求携带功能码,则根据所述功能码开启对应的所述第一蓝牙设备的蓝牙广播。2.根据权利要求1所述的方法,其特征在于,所述功能码携带所述第二蓝牙设备支持连接的第一蓝牙设备的mac地址信息、名称信息和类型信息中的一项或多项。3.根据权利要求1所述的方法,其特征在于,若所述蓝牙连接请求携带功能码,则根据所述功能码开启对应的所述第一蓝牙设备的蓝牙广播,包括:根据所述功能码的类型,确定开启蓝牙广播的所述第一蓝牙设备的范围,其中,第一类型的功能码用于开启每个扫描到所述蓝牙连接请求的所述第一蓝牙设备的蓝牙广播;第二类型的功能码携带多个所述第一蓝牙设备的mac地址,用于开启与所述第二类型的功能码携带的mac地址匹配的所述第一蓝牙设备的蓝牙广播;第三类型的功能码携带一个所述第一蓝牙设备的完整mac地址,用于开启与所述第三类型的功能码携带的mac地址一致的所述第一蓝牙设备的蓝牙广播。4.根据权利要求1所述的方法,其特征在于,当扫描到所述蓝牙连接请求时,判断所述蓝牙连接请求是否携带功能码,包括:当扫描到所述蓝牙连接请求时,如果所述蓝牙连接请求携带的来源标识为预设来源标识,则判断所述蓝牙连接请求是否携带功能码。5.根据权利要求1所述的方法,其特征在于,若所述蓝牙连接请求携带功能码,则根据所述功能码开启对应的所述第一蓝牙设备的蓝牙广播,包括:从开启蓝牙广播的第一时刻开始倒计时;如果在所述倒计时结束前接收到所述第二蓝牙设备发送的连接建立成功信息,或者,所述倒计时结束,则关闭蓝牙广播。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:接收到所述连接建立成功信息后,如果在预设时长内未接收到所述第二蓝牙设备发送的预设格式的数据,则断开与所述第二蓝牙设备的连接。7.根据权利要求1-6任一项所述的方法,其特征在于,所述第二蓝牙设备包括终端设备和/或网关设备,所述第一蓝牙设备包括物联网节点设备。8.根据权利要求1所述的方法,其特征在于,所述方法还包括:与所述第二蓝牙设备建立连接后,如果通过应用层区域的蓝牙应用程序接收到所述第二蓝牙设备发送的蓝牙升级指令,则通过空中下载ota区域的蓝牙应用程序与所述第二蓝牙设备重新建立连接;当通过所述ota区域的蓝牙应用程序接收到所述第二蓝牙设备发送的应用层擦除指令时,擦除所述应用层区域的数据;在所述应用层区域的数据擦除成功后,通过所述ota区域的蓝牙应用程序,从所述第二
蓝牙设备下载蓝牙协议栈数据至所述应用层区域;如果所述应用层区域与协议栈区域存储的蓝牙协议栈数据的版本号不同,则将所述协议栈区域的蓝牙协议栈数据替换为所述应用层区域的蓝牙协议栈数据;通过所述ota区域的蓝牙应用程序,从所述第二蓝牙设备下载蓝牙应用程序至所述应用层区域。9.根据权利要求8所述的方法,其特征在于,通过所述ota区域的蓝应用程序,从所述第二蓝牙设备下载蓝牙协议栈数据至所述应用层区域之后,还包括:如果所述应用层区域与协议栈区域存储的蓝牙协议栈数据的版本号相同,则通过所述ota区域的蓝牙应用程序,从所述第二蓝牙设备下载蓝牙应用程序至所述应用层区域。10.根据权利要求8-9所述的方法,其特征在于,所述第二蓝牙设备包括终端设备,所述第一蓝牙设备包括物联网节点设备和/或网关设备。11.一种蓝牙组网装置,其特征在于,应用于至少一个第一蓝牙设备,包括:扫描模块,用于在蓝牙广播关闭状态下,扫描第二蓝牙设备广播的蓝牙连接请求;判断模块,用于当扫描到所述蓝牙连接请求时,判断所述蓝牙连接请求是否携带功能码;广播模块,用于若所述蓝牙连接请求携带功能码,则根据所述功能码开启对应的所述第一蓝牙设备的蓝牙广播。12.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至10任一所述的方法。13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至10任一所述的方法。

技术总结
本发明涉及蓝牙领域,尤其涉及一种蓝牙组网方法。其中,上述方法应用于至少一个第一蓝牙设备,包括:在蓝牙广播关闭状态下,扫描第二蓝牙设备广播的蓝牙连接请求;当扫描到所述蓝牙连接请求时,判断所述蓝牙连接请求是否携带功能码;若所述蓝牙连接请求携带功能码,则根据所述功能码开启对应的所述第一蓝牙设备的蓝牙广播。本发明实施例提供的蓝牙组网方法可以提高连接效率,节约蓝牙链路资源。节约蓝牙链路资源。节约蓝牙链路资源。


技术研发人员:刘高 邱裕丹
受保护的技术使用者:深圳市英维克信息技术有限公司
技术研发日:2021.12.16
技术公布日:2022/3/8

最新回复(0)