广播数据的处理方法和装置、存储介质及电子装置与流程

文档序号:29035766发布日期:2022-02-25 18:34阅读:76来源:国知局
广播数据的处理方法和装置、存储介质及电子装置与流程

1.本技术涉及计算机领域,具体而言,涉及一种广播数据的处理方法和装置、存储介质及电子装置。


背景技术:

2.目前,部分终端设备可以通过其上的蓝牙模块进行数据广播来上报数据,上报的数据可以经过多路径上报到云端,例如,ble(bluetooth low energy,蓝牙低能耗)终端设备可以通过广播上报数据,上报的数据经过手机或者网关等中间设备转发给云端。然而,在经过多路径上报到云端后,上报的数据可能会出现先发后到的情况,导致云端会将实际最新的数据丢弃掉。
3.由此可见,相关技术中通过蓝牙模块广播数据进行数据上报方式,存在上报的最新数据易被误丢弃的问题。


技术实现要素:

4.本技术实施例提供了一种广播数据的处理方法和装置、存储介质及电子装置,以至少解决相关技术中通过蓝牙模块广播数据进行数据上报方式存在上报的最新数据易被误丢弃的技术问题。
5.根据本技术实施例的一个方面,提供了一种广播数据的处理方法,包括:接收中间设备所转发的目标数据包,其中,目标数据包为智能设备的蓝牙模块广播的数据包;确定已缓存数据包的序列号,得到第一序列号,其中,已缓存数据包为已缓存的、蓝牙模块广播的数据包;在根据第一序列号和第二序列号,确定目标数据包为最新的数据包的情况下,缓存目标数据包,其中,第二序列号为目标数据包的序列号。
6.在一个示例性实施例中,在确定已缓存数据包的序列号之后,所述方法还包括:根据第一序列号和第二序列号,从已缓存数据包和目标数据包中确定最新的数据包。
7.在一个示例性实施例中,根据第一序列号和第二序列号,从已缓存数据包和目标数据包中确定最新的数据包,包括:在第一序列号大于第二序列号的情况下,确定已缓存数据包为最新的数据包;在第一序列号小于第二序列号的情况下,确定目标数据包为最新的数据包;在第一序列号等于第二序列号的情况下,确定已缓存数据包为最新的数据包,其中,已缓存数据包和目标数据包为通过不同的设备转发的、蓝牙模块广播的同一数据包。
8.在一个示例性实施例中,根据第一序列号和第二序列号,从已缓存数据包和目标数据包中确定最新的数据包,包括:根据第一参考数据和第二参考数据,从已缓存数据包和目标数据包中确定最新的数据包,其中,第一参考数据包含第一序列号和与已缓存数据包对应的第一时间戳,第二参考数据包含第二序列号和与目标数据包对应的第二时间戳。
9.在一个示例性实施例中,在接收中间设备所转发的目标数据包之后,所述方法还包括:为目标数据包添加时间戳,得到第二时间戳,其中,第二时间戳用于表示目标数据包的接收时间。
10.在一个示例性实施例中,根据第一参考数据和第二参考数据,从已缓存数据包和目标数据包中确定最新的数据包,包括:在当前时间戳与第一时间戳的差值大于或者等于第一目标差值的情况下,将目标数据包确定为最新的数据包,其中,当前时间戳用于表示当前的系统时间;在当前时间戳与第一时间戳的差值小于第一目标差值的情况下,当目标条件中的至少之一满足时,将已缓存数据包确定为最新的数据包,当目标条件均不满足时,将目标数据包确定为最新的数据包,其中,目标条件包括:第二序列号小于第一序列号且第一序列号与第二序列号的差值小于第二目标差值,第二序列号大于第一序列号且第二序列号与第一序列号的差值大于第二目标差值。
11.在一个示例性实施例中,目标数据包中携带有智能设备所检测到目标环境数据;在缓存目标数据包之后,所述方法还包括:向目标客户端发送数据更新消息,其中,数据更新消息中携带有目标环境数据,数据更新消息用于将目标客户端上显示的环境数据更新为目标环境数据。
12.根据本技术实施例的另一个方面,还提供了一种广播数据的处理装置,包括:接收单元,用于接收中间设备所转发的目标数据包,其中,所述目标数据包为智能设备的蓝牙模块广播的数据包;第一确定单元,用于确定已缓存数据包的序列号,得到第一序列号,其中,所述已缓存数据包为已缓存的、所述蓝牙模块广播的数据包;缓存单元,用于在根据所述第一序列号和第二序列号,确定所述目标数据包为最新的数据包的情况下,缓存所述目标数据包,其中,所述第二序列号为所述目标数据包的序列号。
13.在一个示例性实施例中,所述装置还包括:第二确定单元,用于在所述确定已缓存数据包的序列号之后,根据所述第一序列号和所述第二序列号,从所述已缓存数据包和所述目标数据包中确定最新的数据包。
14.在一个示例性实施例中,所述第二确定单元包括:第一确定模块,用于在所述第一序列号大于所述第二序列号的情况下,确定所述已缓存数据包为最新的数据包;第二确定模块,用于在所述第一序列号小于所述第二序列号的情况下,确定所述目标数据包为最新的数据包;第三确定模块,用于在所述第一序列号等于所述第二序列号的情况下,确定所述已缓存数据包为最新的数据包,其中,所述已缓存数据包和所述目标数据包为通过不同的设备转发的、所述蓝牙模块广播的同一数据包。
15.在一个示例性实施例中,所述第二确定单元包括:第四确定模块,用于根据第一参考数据和第二参考数据,从所述已缓存数据包和所述目标数据包中确定最新的数据包,其中,所述第一参考数据包含所述第一序列号和与所述已缓存数据包对应的第一时间戳,所述第二参考数据包含所述第二序列号和与所述目标数据包对应的第二时间戳。
16.在一个示例性实施例中,所述装置还包括:第三确定单元,用于在所述接收中间设备所转发的目标数据包之后,为所述目标数据包添加时间戳,得到所述第二时间戳,其中,所述第二时间戳用于表示所述目标数据包的接收时间。
17.在一个示例性实施例中,所述第四确定模块包括:第一确定子模块,用于在当前时间戳与所述第一时间戳的差值大于或者等于第一目标差值的情况下,将所述目标数据包确定为最新的数据包,其中,所述当前时间戳用于表示当前的系统时间;第二确定子模块,用于在所述当前时间戳与所述第一时间戳的差值小于所述第一目标差值的情况下,当目标条件中的至少之一满足时,将所述已缓存数据包确定为最新的数据包,当所述目标条件均不
满足时,将所述目标数据包确定为最新的数据包,其中,所述目标条件包括:所述第二序列号小于所述第一序列号且所述第一序列号与所述第二序列号的差值小于第二目标差值,所述第二序列号大于所述第一序列号且所述第二序列号与所述第一序列号的差值大于所述第二目标差值。
18.在一个示例性实施例中,所述目标数据包中携带有所述智能设备所检测到目标环境数据;所述装置还包括:发送单元,用于在所述缓存所述目标数据包之后,向目标客户端发送数据更新消息,其中,所述数据更新消息中携带有所述目标环境数据,所述数据更新消息用于将所述目标客户端上显示的环境数据更新为所述目标环境数据。
19.根据本技术实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述广播数据的处理方法。
20.根据本技术实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的广播数据的处理方法。
21.在本技术实施例中,采用在智能设备所发送的广播数据包中携带序列号的方式,通过接收中间设备所转发的目标数据包,其中,目标数据包为智能设备的蓝牙模块广播的数据包;确定已缓存数据包的序列号,得到第一序列号,其中,已缓存数据包为已缓存的、蓝牙模块广播的数据包;在根据第一序列号和第二序列号,确定目标数据包为最新的数据包的情况下,缓存目标数据包,其中,第二序列号为目标数据包的序列号,由于在广播的数据包中添加了序列号,可以通过上述序列号确定接收到的数据包是否是最新的数据包,从而可以实现避免最新的广播数据包被无丢弃的可能的目的,达到了提高最新数据包确定的便捷性、进而提升数据处理的准确性的技术效果,进而解决了相关技术中通过蓝牙模块广播数据进行数据上报方式存在上报的最新数据易被误丢弃的技术问题。
附图说明
22.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
23.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
24.图1是根据本技术实施例的一种可选的广播数据的处理方法的硬件环境的示意图;
25.图2是根据本技术实施例的一种可选的广播数据的处理方法的流程示意图;
26.图3是根据本技术实施例的一种可选的广播数据的处理方法的示意图;
27.图4是根据本技术实施例的另一种可选的广播数据的处理方法的流程示意图;
28.图5是根据本技术实施例的一种可选的广播数据的处理装置的结构框图;
29.图6是根据本技术实施例的一种可选的电子装置的结构框图。
具体实施方式
30.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
31.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
32.根据本技术实施例的一个方面,提供了一种广播数据的处理方法。可选地,在本实施例中,上述广播数据的处理方法可以应用于如图1所示的由智能设备102和服务器104所构成的硬件环境中。如图1所示,服务器104通过网络与智能设备102进行连接,可用于为终端或终端上安装的客户端提供服务(如应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器104提供数据存储服务。
33.上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:wifi(wireless fidelity,无线保真),蓝牙。智能设备102可以并不限定于为pc、手机等终端设备或智能空调、智能电视等具有蓝牙模块的智能家居设备。服务器104可以是云服务器。
34.本技术实施例的广播数据的处理方法可以由服务器104来执行,也可以由智能设备102来执行,还可以是由服务器104和智能设备102共同执行。其中,智能设备102执行本技术实施例的广播数据的处理方法也可以是由安装在其上的客户端来执行。
35.以由服务器104来执行本实施例中的广播数据的处理方法为例,图2是根据本技术实施例的一种可选的广播数据的处理方法的流程示意图,如图2所示,该方法的流程可以包括以下步骤:
36.步骤s202,接收中间设备所转发的目标数据包,其中,目标数据包为智能设备的蓝牙模块广播的数据包。
37.本实施例中的广播数据的处理方法可以应用到通过多条路径将智能设备通过蓝牙模块广播的数据包发送给云端(也可以是其他服务器、或者其他设备)的场景中,多条路径中转发数据的设备可以为中转设备。中转设备可以是位于用户家庭中的中转设备,其可以是手机、路由器或具有数据中转功能的智能家居设备。相比于传统的家居设备,智能家居设备中增加了计算模块、网络接口、输入输出装置等,从而使得本实施例中的智能家居设备具有智能分析和智能服务的功能。
38.上述的蓝牙模块可以是传统蓝牙(即,蓝牙3.0规范之前的蓝牙),也可以是蓝牙4.0规范下的ble蓝牙。对应地,智能设备可以是包含传统蓝牙的智能设备,也可以是包含
ble蓝牙的智能设备(可以称为ble设备或者ble广播设备)。本实施例中以ble设备为例进行说明。
39.相关技术中,ble设备广播数据包时一般不会在数据包中携带序列号,这样会导致数据在经过手机或者网关等设备转发给云端后,可能会出现先发后到的情况,从而导致云端将实际最新的数据丢弃掉。在本实施例中,可以在所发送的数据包中添加序列号,云服务器(服务器104的一种示例)可以根据数据包中携带的序列号,判断新接收到的数据是否是最新的数据包,从而避免服务端将上报的最新数据包被意外丢弃。
40.本实施例中,当有数据需要上报时,ble设备可以生成待广播的数据包,即,目标数据包,该数据包中可以携带有所上报的数据。ble设备可以通过其上的蓝牙模块广播目标数据包,该ble设备周围的中转设备接收到广播的目标数据包之后,可以根据该广播数据包的目的地址等,将目标数据包继续向目标服务器转发,直到将目标数据包转发到目标服务器。ble设备的同一条广播数据可能会通过多个中转设备(例如,多个网关)发送到目标服务器,那么,目标服务器会从至少一个中转设备处接收其转发的目标数据包,当前接收到的是中间设备所转发的目标数据包,该中间设备为目标数据包由被广播到被该目标服务器接收所经过的设备,例如,手机,网关、智能家居设备等。
41.需要说明的是,由于不同的设备转发数据、数据传输的速率等都不仅相同,因此,目标服务器接收不同路径上转发来的目标数据包的时间可能是不同的,例如,ble设备的同一条广播数据可以通过多个网关发送到云服务器。当由于智能设备的蓝牙模块损害或者出现其他故障时,智能设备无法通过其上的蓝牙模块进行数据包广播。在此情况下,可以通过无线网络或者其他网络向目标服务器发送数据包,本实施中对此不做限定。
42.例如,以智能设备为智能空调为例,智能空调可以向一定范围内的网关设备(中间设备的一种示例)发送数据包,当网关设备接收到上述数据包后,可以将上述数据包转发给云服务器。
43.步骤s204,确定已缓存数据包的序列号,得到第一序列号,其中,已缓存数据包为已缓存的、蓝牙模块广播的数据包。
44.在接收到目标数据包之前,目标服务器可以接收该智能设备通过上述的蓝牙模块所广播的至少一个数据包,确定接收到的最新数据包,并进行缓存(缓存到内存中,或者,存储到数据库中等),而历史缓存的数据包可以是保存一段时间,也可以在其进行删除,本实施例中对此不做限定。
45.在接收到目标数据包之后,目标服务器可以首先确定该目标数据包是否为最新的数据包,例如,其可以确定已缓存数据包的序列号,得到第一序列号。已缓存数据包为已缓存的、该智能设备的蓝牙模块广播的数据包。已缓存数据包的数量可以为一个或多个,其可以是已确定的最新数据包,对应地,第一序列号的数量也可以为一个或多个。目标服务器还可以确定目标数据包的序列号,为第二序列号。
46.例如,当接收到网关转发的广播数据之后,云服务器可以确定已缓存数据data1的序列号sn1(data1是智能空调发出的广播数据包,sn1为data1发出时的序列号,是1字节的序列号),为“111”(十进制表示,在数据包中序列号可以是通过二进制表示的),还可以确定新接收到的广播数据data2的序列号sn2(data2是智能空调发出的广播数据包,sn2为data2发出时的序列号),为“112”。
47.需要说明的是,数据包的序列号可以是写入到数据包的特定字段,通过读取该特定字段中的数据,可以确定出目标数据包的序列号。该特定字段可以包含至少一个字节,例如,4个字节,又例如,1个字节。序列号可以反映出数据包的发送时间,根据数据包的序列号,可以确定出新接收到的数据包是否为最新的数据包。上述特定字段可以位于数据包的特定位置,例如,数据包的开头位置、数据包的结尾位置等。本实施例中对于序列号的发送方式不做限定。
48.步骤s206,在根据第一序列号和第二序列号,确定目标数据包为最新的数据包的情况下,缓存目标数据包,其中,第二序列号为目标数据包的序列号。
49.根据第一序列号和第二序列号,确定已缓存数据包和目标数据包中哪一个为最新的数据包。如果确定目标数据包为最新的数据包,目标服务器可以缓存目标数据包。可选地,如果确定目标数据包为最新的数据包,目标服务器可以将已缓存数据包进行删除,以节省目标服务器的存储空间;如果目标数据包不是最新的数据包,可以将目标数据包进行丢弃。
50.例如,云服务器根据sn1和sn2,可以判断出data1和data2中哪个数据是最后发出的。以最后发出的数据为准,缓存这个最新的数据,前面缓存的数据被删掉。
51.通过上述步骤s202至步骤s206,接收中间设备所转发的目标数据包,其中,目标数据包为智能设备的蓝牙模块广播的数据包;确定已缓存数据包的序列号,得到第一序列号,其中,已缓存数据包为已缓存的、蓝牙模块广播的数据包;在根据第一序列号和第二序列号,确定目标数据包为最新的数据包的情况下,缓存目标数据包,其中,第二序列号为目标数据包的序列号,解决了相关技术中通过蓝牙模块广播数据进行数据上报方式存在上报的最新数据易被误丢弃的技术问题,提高了最新数据包确定的便捷性,提升了数据处理的准确性。
52.在一个示例性实施例中,在确定已缓存数据包的序列号之后,上述方法还包括:
53.s11,根据第一序列号和第二序列号,从已缓存数据包和目标数据包中确定最新的数据包。
54.在接收到目标数据包之后,目标服务器可以执行判定操作,即,判定接收到的目标数据包是否是最新的数据包。序列号可以表示数据包被发出的次序,因此,在确定已缓存数据包的序列号之后,目标服务器可以根据第一序列号和第二序列号,从已缓存数据包和目标数据包中确定最新的数据包,即,确定已缓存数据包和目标数据包中的哪一个数据包为最新的数据包。
55.目标服务器可以仅依据序列号之间的相对关系,从已缓存数据包和目标数据包中确定最新的数据包,也可以依据序列号之间的相对关系结合其他的信息(例如,数据包的时间戳)从已缓存数据包和目标数据包中确定最新的数据包(避免由于出现序列号翻转导致的最新数据包被丢弃),本实施例中对此不做限定。
56.通过本实施例,根据数据包的序列号确定最新的数据包,可以提高最新数据包确定的便捷性,进而提高数据处理的效率。
57.在一个示例性实施例中,根据第一序列号和第二序列号,从已缓存数据包和目标数据包中确定最新的数据包,包括:
58.s21,在第一序列号大于第二序列号的情况下,确定已缓存数据包为最新的数据
包;
59.s22,在第一序列号小于第二序列号的情况下,确定目标数据包为最新的数据包;
60.s23,在第一序列号等于第二序列号的情况下,确定已缓存数据包为最新的数据包,其中,已缓存数据包和目标数据包为通过不同的设备转发的、蓝牙模块广播的同一数据包。
61.在本实施例中,目标服务器可以仅依据序列号之间的相对关系,从已缓存数据包和目标数据包中确定最新的数据包。如果第一序列号大于第二序列号,可以确定已缓存数据包为最新的数据包。例如,如果sn1大于sn2,确定已缓存数据data1为最新数据。在此情况下,可以将目标数据包丢弃。如果第一序列号小于第二序列号,可以确定目标数据包为最新的数据包。例如,如果sn1小于sn2,确定已缓存数据data1为最新数据。在此情况下,可以缓存目标数据包。
62.可选地,如果第一序列号等于第二序列号,可以确定已缓存数据包和目标数据包为通过不同的设备转发的、蓝牙模块广播的同一数据包。在此情况下,可以确定已缓存数据包或者目标数据包为最新的数据包。为了减少不必要的操作,可以将目标数据包丢弃。这里,第一序列号和第二序列号的比较过程所比较的可以是第一序列号对应的数值和第二序列号对应的数值。
63.例如,data1的序列号sn1为“111”,data2的序列号sn2为“112”,由于sn1小于sn2,因此,云服务器可以确定data2为最新数据。
64.通过本实施例,基于序列号之间的大小关系确定最新数据包,可以简化确定最新数据包的过程,进而提高数据处理的效率。
65.在一个示例性实施例中,根据第一序列号和第二序列号,从已缓存数据包和目标数据包中确定最新的数据包,包括:
66.s31,根据第一参考数据和第二参考数据,从已缓存数据包和目标数据包中确定最新的数据包,其中,第一参考数据包含第一序列号和与已缓存数据包对应的第一时间戳,第二参考数据包含第二序列号和与目标数据包对应的第二时间戳。
67.每包数据所携带的序列号所占用的字节数可以根据需要进行配置,例如,2个字节、3个字节、4个字节等等。例如,ble设备可以通过gatt(generic attribute profile,通用属性规范)连接上报数据经多路径到云端时,因数据包大小不会受限,所以可以每包数据所携带的序列号设置为4字节,从0至4294967295。这样的序列号设置可以使得序列号基本上不会重复,云端可以直接根据序列号判断哪一包数据为最新数据。
68.为了增加每包数据所传输的数据信息,进而提高数据传输的效率,可以使用较少的字节数表示序列号。例如,对于ble广播数据,广播包总长31字节,使用4字节作为序列号会占用大量的空间,使得数据包中所携带的有效信息减少。为了传输更多数据信息,可以采用较少的字节数作为序列号,例如,只使用一个字节作为序列号(其范围为0-255),从而提高信息传输的效率。
69.考虑到由于数据量过大或者序列号所占字节数过少等原因,会出现序列号翻转的情况(例如,使用一个字节作为序列号,在当前序列号为255时,下一个数据的序列号为0,序列号发生翻转),导致云端可能无法识别新接收数据是否为最新数据包。为了提高最新数据包识别的准确性,可以结合序列号和时间戳,从已缓存数据包和目标数据包中确定最新的
数据包。
70.对于目标数据包,目标服务器可以确定已缓存数据包的时间戳,为第一时间戳,还可以确定目标数据包的时间戳,为第二时间戳。基于上述的第一序列号和第一时间戳,可以得到已缓存数据包的第一参数数据;基于上述的第二序列号和第二时间戳,可以得到目标数据包的第二参数数据。根据第一参考数据和第二参考数据,目标服务器可以从已缓存数据包和目标数据包中确定最新的数据包。
71.需要说明的是,数据包的时间戳可以是在发送数据包时,由智能设备为数据包添加的(添加的是发送时间戳),也可以是在接收到数据包之后,由目标服务器为接收到的数据包添加的,本实施例中对此不做限定。
72.例如,已缓存数据data1的时间戳为ts1,新来数据data2的时间戳为ts2,可以将data1表示为[ts1,sn1],data2表示为[ts2,sn2]。根据[ts1,sn1]和[ts2,sn2],可以确定data1和data2哪一个是最新数据。
[0073]
通过本实施例,结合数据包的序列号和数据包的时间戳来确定最新的数据包,可以提高最新数据包确定的准确性。
[0074]
在一个示例性实施例中,在接收中间设备所转发的目标数据包之后,上述方法还包括:
[0075]
s41,为目标数据包添加时间戳,得到第二时间戳,其中,第二时间戳用于表示目标数据包的接收时间。
[0076]
在本实施例中,数据包的时间戳可以是目标服务器在接收到数据包之后为接收到的数据包所添加的时间戳。对于目标数据包,在接收到目标数据包之后,目标服务器可以为目标数据包添加时间戳,得到第二时间戳,这里的第二时间戳可以用于表示目标数据包的接收时间。
[0077]
可选地,目标服务器所添加的时间戳可以是接收到目标数据包时的系统时间(例如,系统时间yyyy-mm-dd),时间戳可以在数据包的头部添加的,也可以是在数据包的尾部添加的,还可以是保存在特定的数据结构中的,例如,数据表中,本实施例中对此不做赘述。
[0078]
例如,对于data1,ts1为云服务器接收到的设备通过网关发来的数据data1里的时间戳,即,云服务器在接收到这个数据包时所添加的时间戳,对于data2,ts2为云服务器接收到的设备通过网关发来的数据data2里的时间戳,即,云服务器在接收到这个数据包时所添加的时间戳。
[0079]
通过本实施例,在接收到数据包时未接收到的数据包添加时间戳,可以减少由于需要携带时间戳等信息对传输资源的占用,进而提高数据包携带信息的能力。
[0080]
在一个示例性实施例中,根据第一参考数据和第二参考数据,从已缓存数据包和目标数据包中确定最新的数据包,包括:
[0081]
s51,在当前时间戳与第一时间戳的差值大于或者等于第一目标差值的情况下,将目标数据包确定为最新的数据包,其中,当前时间戳用于表示当前的系统时间;
[0082]
s52,在当前时间戳与第一时间戳的差值小于第一目标差值的情况下,当目标条件中的至少之一满足时,将已缓存数据包确定为最新的数据包,当目标条件均不满足时,将目标数据包确定为最新的数据包,其中,目标条件包括:第二序列号小于第一序列号且第一序列号与第二序列号的差值小于第二目标差值,第二序列号大于第一序列号且第二序列号与
第一序列号的差值大于第二目标差值。
[0083]
在本实施例中,可以设定序列号发生翻转所需的时间,即,第一目标差值。比如,ble设备广播数据的序列号sn使用1字节,累计至255时重新从0开始计数,限定序列号sn更新频率不超过4次/s,则60s内序列号sn最多可以增加240,可以将第一目标差值设定为60s,为了保证最新数据包判定的准确性,可以将第一目标差值设定为30s。
[0084]
目标服务器可以获取当前系统时间戳,即,当前时间戳,该当前时间戳用于表示当前的系统时间。而第一时间戳用于表示目标服务器接收到已缓存数据包时的系统时间。如果当前时间戳与第一时间戳的差值大于或者等于第一目标差值(例如,30s),此时不需要对第一序列号和第二序列号进行比较,可以将直接目标数据包确定为最新的数据包。
[0085]
可选地,如果当前时间戳与第一时间戳的差值小于第一目标差值,则可以依据第一序列号和第二序列号来判断已缓存数据包和目标数据包中的哪一个是最新的数据包。当目标条件中的至少之一满足时,可以将已缓存数据包确定为最新的数据包,否则,将目标数据包确定为最新的数据包,这里,目标条件可以包括:第二序列号小于第一序列号且第一序列号与第二序列号的差值小于第二目标差值(例如,128),第二序列号大于第一序列号且第二序列号与第一序列号的差值大于第二目标差值。
[0086]
例如,已有缓存数据为data1[ts1,sn1],新来的数据为data2[ts2,sn2],当前系统时间戳为ts3。若ts3-ts1≥30s,服务器确定data2为最新的数据,将data2进行缓存。当ts3-ts1《30s时,如果sn2《sn1且sn1-sn2《128、或sn2》sn1并且sn2-sn1》128,服务器确定data1为最新的数据,将data1进行缓存,否则,服务器确定data2为最新的数据,将data2进行缓存。
[0087]
通过本实施例,通过结合时间戳和序列号确定最新的数据包,可以提高最新数据包确定的准确性。
[0088]
在一个示例性实施例中,目标数据包中携带有智能设备所检测到目标环境数据;在缓存目标数据包之后,上述方法还包括:
[0089]
s61,向目标客户端发送数据更新消息,其中,数据更新消息中携带有目标环境数据,数据更新消息用于将目标客户端上显示的环境数据更新为目标环境数据。
[0090]
在本实施例中,智能设备通过其上的蓝牙模块所广播的数据包中携带的数据为其检测到环境数据,例如,环境温度、环境湿度、空气质量参数等,而目标数据包中携带的是目标环境数据。可选地,在缓存目标数据包之后,目标服务器可以向目标客户端发送携带有目标环境数据的数据更新消息,该数据更新消息用于将目标客户端上显示的环境数据更新为目标环境数据。
[0091]
可选地,上述数据更新消息可以是在接收到目标客户端发送的数据获取请求之后发送的,该数据获取请求用于请求获取智能设备所检测到的环境数据。在接收到上述的数据更新消息后,目标客户端可以对上述数据更新消息进行解析,分析出其携带的目标环境数据,并使用目标环境数据更新目标客户端上显示的环境数据。
[0092]
需要说明的是,上述目标客户端可以是运行在智能设备上的客户端,也可以是运行在终端设备上、用于控制该智能设备的客户端,本实施例中对于目标客户端不做限定。
[0093]
通过本实施例,在缓存最新的环境数据之后,通过向目标客户段发送数据更新消息来更新客户端所显示的环境数据,可以提高客户端数据显示的准确性,进而提高用户的满意度。
[0094]
下面结合可选示例对本技术实施例中的广播数据的处理方法进行解释说明。在本可选示例中,智能设备为ble设备,目标服务器为物联网云端的服务器。
[0095]
本可选示例中广播数据的处理方法是一种多路径上报ble设备广播信息到云端的融合方案,仅使用1字节作为序列号,以解决已有缓存数据和新到数据的去重融合问题。结合图3和图4所示,本可选示例中的广播数据的处理方法的流程可以包括以下步骤:
[0096]
步骤s302,ble设备向周围的网关或者手机等发送广播数据包。
[0097]
ble设备向周围发送广播数据包。多个网关或手机app(application,应用)都在接收广播数据,并实时上传至云端。
[0098]
步骤s304,云端接收到广播数据后为数据打上时间戳,结合数据的序列号,使用融合算法判断出数据是否为最新数据,并更新缓存。
[0099]
因各网关或者手机的时间不同步,所以不能依赖网关时间戳来决定数据先后顺序。
[0100]
云端接收到网关的数据data2之后,第一时间打上时间戳ts2。结合已缓存数据data1的时间戳ts1和序列号sn1、data2的时间戳ts2和序列号sn2、以及当前系统时间ts3,使用融合算法判断出data2是否为最新数据,如果是,更新缓存。融合算法为前述实施例中结合[ts1,sn1]、[ts2,sn2]和ts3确定最新数据包的方式类似,在此不做赘述。ble广播数据仅包含1字节序列号。
[0101]
在本可选示例中,如果同一广播数据接收的时间不一致,可以通过上述融合算法进行去重(例如,时间戳30以内,序列号相同的认为是同一个数据,可以进行去重);对于后发先到的数据,通过上述融合算法可以找出后发先到的替换先发后到的,可以避免相关方案中以后收到的为准的方式,数据选择会有错误。
[0102]
通过本可选示例,采用1个字节的序列号,可以解决需要用4字节才能解决的问题,在ble设备全包仅31字节的情况下,可以尽量多的传输数据信息;云端可以使用上述融合算法解决多路径传输数据时涉及去重过滤,对比查新等问题。
[0103]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
[0104]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom(read-only memory,只读存储器)/ram(random access memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
[0105]
根据本技术实施例的另一个方面,还提供了一种用于实施上述广播数据的处理方法的广播数据的处理装置。图5是根据本技术实施例的一种可选的广播数据的处理装置的结构框图,如图5所示,该装置可以包括:
[0106]
接收单元502,用于接收中间设备所转发的目标数据包,其中,目标数据包为智能设备的蓝牙模块广播的数据包;
[0107]
第一确定单元504,与接收单元502相连,用于确定已缓存数据包的序列号,得到第一序列号,其中,已缓存数据包为已缓存的、蓝牙模块广播的数据包;
[0108]
缓存单元506,与第一确定单元504相连,用于在根据第一序列号和第二序列号,确定目标数据包为最新的数据包的情况下,缓存目标数据包,其中,第二序列号为目标数据包的序列号。
[0109]
需要说明的是,该实施例中的接收单元502可以用于执行上述步骤s202,该实施例中的第一确定单元504可以用于执行上述步骤s204,该实施例中的缓存单元506可以用于执行上述步骤s206。
[0110]
通过上述模块,接收中间设备所转发的目标数据包,其中,目标数据包为智能设备的蓝牙模块广播的数据包;确定已缓存数据包的序列号,得到第一序列号,其中,已缓存数据包为已缓存的、蓝牙模块广播的数据包;在根据第一序列号和第二序列号,确定目标数据包为最新的数据包的情况下,缓存目标数据包,其中,第二序列号为目标数据包的序列号,解决了相关技术中通过蓝牙模块广播数据进行数据上报方式存在上报的最新数据易被误丢弃的技术问题,提高了最新数据包确定的便捷性,提升了数据处理的准确性。
[0111]
在一个示例性实施例中,上述装置还包括:
[0112]
第二确定单元,用于在确定已缓存数据包的序列号之后,根据第一序列号和第二序列号,从已缓存数据包和目标数据包中确定最新的数据包。
[0113]
在一个示例性实施例中,第二确定单元包括:
[0114]
第一确定模块,用于在第一序列号大于第二序列号的情况下,确定已缓存数据包为最新的数据包;
[0115]
第二确定模块,用于在第一序列号小于第二序列号的情况下,确定目标数据包为最新的数据包;
[0116]
第三确定模块,用于在第一序列号等于第二序列号的情况下,确定已缓存数据包为最新的数据包,其中,已缓存数据包和目标数据包为通过不同的设备转发的、蓝牙模块广播的同一数据包。
[0117]
在一个示例性实施例中,第二确定单元包括:
[0118]
第四确定模块,用于根据第一参考数据和第二参考数据,从已缓存数据包和目标数据包中确定最新的数据包,其中,第一参考数据包含第一序列号和与已缓存数据包对应的第一时间戳,第二参考数据包含第二序列号和与目标数据包对应的第二时间戳。
[0119]
在一个示例性实施例中,上述装置还包括:
[0120]
第三确定单元,用于在接收中间设备所转发的目标数据包之后,为目标数据包添加时间戳,得到第二时间戳,其中,第二时间戳用于表示目标数据包的接收时间。
[0121]
在一个示例性实施例中,第四确定模块包括:
[0122]
第一确定子模块,用于在当前时间戳与第一时间戳的差值大于或者等于第一目标差值的情况下,将目标数据包确定为最新的数据包,其中,当前时间戳用于表示当前的系统时间;
[0123]
第二确定子模块,用于在当前时间戳与第一时间戳的差值小于第一目标差值的情
况下,当目标条件中的至少之一满足时,将已缓存数据包确定为最新的数据包,当目标条件均不满足时,将目标数据包确定为最新的数据包,其中,目标条件包括:第二序列号小于第一序列号且第一序列号与第二序列号的差值小于第二目标差值,第二序列号大于第一序列号且第二序列号与第一序列号的差值大于第二目标差值。
[0124]
在一个示例性实施例中,目标数据包中携带有智能设备所检测到目标环境数据;上述装置还包括:
[0125]
发送单元,用于在缓存目标数据包之后,向目标客户端发送数据更新消息,其中,数据更新消息中携带有目标环境数据,数据更新消息用于将目标客户端上显示的环境数据更新为目标环境数据。
[0126]
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
[0127]
根据本技术实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行本技术实施例中上述任一项广播数据的处理方法的程序代码。
[0128]
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
[0129]
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
[0130]
s1,接收中间设备所转发的目标数据包,其中,目标数据包为智能设备的蓝牙模块广播的数据包;
[0131]
s2,确定已缓存数据包的序列号,得到第一序列号,其中,已缓存数据包为已缓存的、蓝牙模块广播的数据包;
[0132]
s3,在根据第一序列号和第二序列号,确定目标数据包为最新的数据包的情况下,缓存目标数据包,其中,第二序列号为目标数据包的序列号。
[0133]
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。
[0134]
可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、rom、ram、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0135]
根据本技术实施例的又一个方面,还提供了一种用于实施上述广播数据的处理方法的电子装置,该电子装置可以是服务器、终端、或者其组合。
[0136]
图6是根据本技术实施例的一种可选的电子装置的结构框图,如图6所示,包括处理器602、通信接口604、存储器606和通信总线608,其中,处理器602、通信接口604和存储器606通过通信总线608完成相互间的通信,其中,
[0137]
存储器606,用于存储计算机程序;
[0138]
处理器602,用于执行存储器606上所存放的计算机程序时,实现如下步骤:
[0139]
s1,接收中间设备所转发的目标数据包,其中,目标数据包为智能设备的蓝牙模块广播的数据包;
[0140]
s2,确定已缓存数据包的序列号,得到第一序列号,其中,已缓存数据包为已缓存
的、蓝牙模块广播的数据包;
[0141]
s3,在根据第一序列号和第二序列号,确定目标数据包为最新的数据包的情况下,缓存目标数据包,其中,第二序列号为目标数据包的序列号。
[0142]
可选地,通信总线可以是pci(peripheral component interconnect,外设部件互连标准)总线、或eisa(extended industry standard architecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子装置与其他设备之间的通信。
[0143]
存储器可以包括ram,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0144]
作为一种示例,上述存储器606中可以但不限于包括上述广播数据的处理装置中的接收单元502、第一确定单元504、以及缓存单元506。此外,还可以包括但不限于上述广播数据的处理装置中的其他模块单元,本示例中不再赘述。
[0145]
上述处理器可以是通用处理器,可以包含但不限于:cpu(central processing unit,中央处理器)、np(network processor,网络处理器)等;还可以是dsp(digital signal processing,数字信号处理器)、asic(application specific integrated circuit,专用集成电路)、fpga(field-programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0146]
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
[0147]
本领域普通技术人员可以理解,图6所示的结构仅为示意,实施上述广播数据的处理方法的设备可以是终端设备,该终端设备可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图6其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示的不同的配置。
[0148]
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、rom、ram、磁盘或光盘等。
[0149]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0150]
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。
[0151]
在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0152]
在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一
种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0153]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
[0154]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以至少两个单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0155]
以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1