一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据获取方法、装置、电子设备及存储介质与流程

2021-11-24 20:38:00 来源:中国专利 TAG:


1.本技术涉及通信技术领域,更具体地,涉及一种数据获取方法、装置、电子设备及存储介质。


背景技术:

2.在一些场景中客户端在使用服务端中所提供的服务之前,需要先获取到服务端中所提供的服务。例如,在基于gatt(generic attribute profile)协议的通信中,gatt客户端需要向gatt服务端发起服务发现流程来发现gatt服务端中的服务数据。但是,在相关的服务获取中的还存在效率有待提升的问题。


技术实现要素:

3.鉴于上述问题,本技术提出了一种数据获取方法、装置、电子设备及存储介质,以实现改善上述问题。
4.第一方面,本技术提供了一种数据获取方法,应用于客户端,所述方法包括:所述客户端与服务端建立连接,所述服务端中存储有指定标识,所述指定标识用于标识所述服务端中的第一服务数据,所述第一服务数据为固定不变的服务数据;若本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据,基于所述指定标识从所述服务端中获取第二服务数据,所述第二服务数据为所述服务端中除所述第一服务数据以外的服务数据;将所述第二服务数据和本地的所述第一服务数据作为获取到的所述服务端的服务数据。
5.第二方面,本技术提供了一种数据获取方法,应用于服务端,所述方法包括:所述服务端与客户端建立连接,所述服务端中存储有指定标识,所述指定标识用于标识所述服务端中的第一服务数据,所述第一服务数据为固定不变的服务数据;响应于客户端发送的与所述指定标识对应的获取请求,从所述服务端中获取第二服务数据,所述获取请求为所述客户端在确定本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据后发送;将所述第二服务数据发送给所述客户端,以用于使所述客户端将所述第二服务数据和本地的第一服务数据作为获取到的所述服务端的服务数据。
6.第三方面,本技术提供了一种数据获取方法,运行于客户端,所述装置包括:连接管理单元,用于与服务端建立连接,所述服务端中存储有指定标识,所述指定标识用于标识所述服务端中的第一服务数据,所述第一服务数据为固定不变的服务数据;第一数据获取单元,用于若本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据,基于所述指定标识从所述服务端中获取第二服务数据,所述第二服务数据为所述服务端中除所述第一服务数据以外的服务数据;第二数据获取单元,用于将所述第二服务数据和本地的所述第一服务数据作为获取到的所述服务端的服务数据。
7.第四方面,本技术提供了一种数据获取方法,运行于服务端,所述装置包括:连接管理单元,用于与客户端建立连接,所述服务端中存储有指定标识,所述指定标识用于标识
所述服务端中的第一服务数据,所述第一服务数据为固定不变的服务数据;数据查找单元,用于响应于客户端发送的与所述指定标识对应的获取请求,从所述服务端中获取第二服务数据,所述获取请求为所述客户端在确定本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据后发送;数据发送单元,用于将所述第二服务数据发送给所述客户端,以用于使所述客户端将所述第二服务数据和本地的第一服务数据作为获取到的所述服务端的服务数据。
8.第五方面,本技术提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。
9.第六方面,本技术提供的一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。
10.本技术提供的一种数据获取方法、装置、电子设备及存储介质,在客户端与服务端建立连接后,客户端进一步的确定本地是否已经预先存储有基于所述指定标识从所述服务端获取的第一服务数据,若有则直接基于所述指定标识从所述服务端中获取服务端中除所述第一服务数据以外的服务数据(第二服务数据),以将所述第二服务数据和本地的所述第一服务数据作为获取到的所述服务端的服务数据。
11.从而通过上述方式使得在服务端将服务数据区分为第一服务数据以及第二服务数据的情况下,使得客户端可以预先通过从服务端中获取第一服务数据以存储在本地,继而使得在后续每次需要获取服务端对应的服务数据的过程中,可以只用通过服务端对应的指定标识去获取第二服务数据,进而减少了每次服务数据的获取过程中需要从服务端中进行数据获取的数据量,提升了从服务端获取服务数据的效率。
附图说明
12.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
13.图1示出了本技术实施例提出的数据获取方法的一种应用场景的示意图;
14.图2示出了本技术实施例提出的一种数据获取方法的另一种应用场景的示意图;
15.图3示出了本技术实施例提出的一种数据获取方法的流程图;
16.图4示出了本技术实施例中服务端所存储的服务数据的示意图;
17.图5示出了本技术另一实施例提出的一种数据获取方法的流程图;
18.图6示出了本技术再一实施例提出的一种数据获取方法的流程图;
19.图7示出了本技术又一实施例提出的一种数据获取方法的流程图;
20.图8示出了本技术又一实施例提出的一种数据获取方法的流程图;
21.图9示出了本技术又一实施例提出的一种数据获取方法的流程图;
22.图10示出了本技术实施例提出的一种数据获取装置的结构框图;
23.图11示出了本技术又一实施例提出的一种数据获取装置的结构框图;
24.图12示出了本技术提出的一种电子设备的结构框图;
25.图13是本技术实施例的用于保存或者携带实现根据本技术实施例的数据获取方法的程序代码的存储单元。
具体实施方式
26.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
27.通常一些电子设备为了向另外的电子设备提供服务,在电子设备中可以配置有服务端,而在该另外的电子设备中则建立有可以与该服务端建立连接的客户端。其中,在客户端使用服务端中所提供的服务之前,客户端需要先获取到服务端中所提供的服务。例如,在基于gatt(generic attribute profile)协议的通信中,gatt客户端需要向gatt服务端发起服务发现流程来发现gatt服务端中的服务数据,以实现获取到gatt服务端所能提供的服务。
28.但是,发明人在研究中发现,在相关的服务数据获取方式中的还存在效率有待提升的问题。例如,发明人发现,若客户端在与服务端建立连接后,客户端检测到与所建立连接的服务端之间未建立授信关系,则客户端会发起服务数据发现流程以获取服务端中所有的服务数据。也就是说,在没有建立授信关系的情况下,在每次的服务数据获取过程中,客户端会将服务端中所有的服务数据均获取一遍,进而就造成服务数据的获取流程耗时较长,进而影响效率。
29.因此,为了改善上述问题,发明人提出了本技术所提供的一种数据获取方法、装置、电子设备及存储介质,通过从服务端中获取标识服务端中的第一服务数据指定标识后,进一步的确定本地是否已经预先存储有基于所述指定标识从所述服务端获取的第一服务数据,若有则直接基于所述指定标识从所述服务端中获取服务端中除所述第一服务数据以外的服务数据(第二服务数据),以将所述第二服务数据和本地的所述第一服务数据作为获取到的所述服务端的服务数据。
30.从而通过上述方式使得在服务端将服务数据区分为第一服务数据以及第二服务数据的情况下,使得客户端可以预先通过从服务端中获取第一服务数据以存储在本地,继而使得在后续每次需要获取服务端对应的服务数据的过程中,可以只用通过服务端对应的指定标识去获取第二服务数据,进而减少了每次服务数据的获取过程中需要从服务端中进行数据获取的数据量,提升了从服务端获取服务数据的效率。
31.下面先对本技术实施例所涉及的一种应用场景进行介绍。
32.如图1所示,本技术实施例所涉及的一种应用场景中包括有电子设备100和电子设备200。其中,电子设备100中运行有服务端,电子设备200中运行有客户端。其中,电子设备200中的客户端可以为gatt客户端,对应的,电子设备100中的服务端可以为gatt服务端。
33.再者,图1中所示第一电子设备和第二电子设备的类型只是示例性的。例如,如图2所示,第二电子设备除了可以为图1中所示的智能手机外还可以为无线耳机210。再者,第一电子设备除了可以为图1中所示的智能手机外,还可以为平板电脑以及计算机等设备。再者,第二电子设备除了可以为图1、图2中所示的设备外,还可以为智能手环、智能手表等设备。
34.下面将结合附图具体描述本技术的各实施例。
35.请参阅图3,本技术实施例提供的一种数据获取方法,所述方法包括:
36.s110:所述客户端与服务端建立连接,所述服务端中存储有指定标识,所述指定标识用于标识所述服务端中的第一服务数据,所述第一服务数据为固定不变的服务数据。
37.其中,服务端在开始运行后,可以开始发送广播数据。客户端在接收到服务端所发送的广播数据后,则可以与发送广播数据的服务端建立连接。
38.再者,在本技术实施例中,为了使得与服务端建立连接的客户端能够获取到服务端中有哪些服务数据是固定不变的,在服务端中可以存储有用于标识固定不变的服务数据(第一服务数据)的指定标识。
39.可选的,所述客户端为gatt客户端,所述服务端为gatt服务端,所述gatt服务端对应的数据库中设置有指定特征,所述指定特征的值用于记录所述指定标识。可选的,在服务端中有单独建立的标识存储文件,该标识存储文件用于存储指定标识。
40.其中,需要说明的是,服务端中的服务数据可以理解为与服务端所提供的服务有关的数据,或者可以理解为用于对所提供的服务进行描述的数据。可选的,服务数据可以包括有服务(服务的名称),该服务所对应的特征以及特征所对应的特征描述符。其中,特征可以用于描述所对应的服务所具有的功能,而特征描述符则可以用于描述所对应功能如何使用以及是否具有可扩展性等。在服务端中服务数据所包括的服务、特征以及特征描述符各自对应有标识。例如,在gatt服务端中,服务、特征以及特征描述符各自对应有handle来作为各自的标识。并且,在一些情况下,服务、特征以及特征描述符各自所对应的标识是按照一定的顺序排列的。示例性的,如图4所示,服务端中包括有服务1、服务2以及服务3。其中,服务1对应有特征1,特征1对应有特征描述符1。服务2对应有特征2,特征2对应有特征描述符2。服务3对应有特征3,特征3对应有特征描述符3。服务1对应的标识为0x0001,特征1对应的标识为0x0002,特征描述符1对应的标识为0x0003。服务2对应的标识为0x0004,特征2对应的标识为0x0005,特征描述符2对应的标识为0x0006。服务3对应的标识为0x0007,特征3对应的标识为0x0008,特征描述符3对应的标识为0x0009。
41.需要说明的是,图4中所示的服务端中所包括的服务的数量只是示例性的,在服务端中可以包括有比图4中所示的服务更少或者更多的服务。例如,可以仅包括服务1和服务2,也可以包括服务1、服务2以及服务3以外的服务。类似的,对于每个服务所对应的特征的数量也可以不仅仅限于图4中所示的1个,例如,服务所对应的特征可以有多个。再者,图4中所示的标识的样式也只是示例性的,本技术实施例的标识也可以有其他的样式。例如,可以直接将服务数据在服务端的存储位置作为对应的标识。需要说明的是,作为一种方式,在服务端中的存储地址是依次相邻排序的,那么将服务数据的存储地址作为标识,依然可以实现基于存储地址对服务数据进行排序。
42.其中,在服务端中所包括的服务数据中,部分服务数据可能固定不变的,对于固定不变的这部分服务数据,则可以基于其所对应的标识划分出来。例如,可以通过服务数据对应标识,将服务数据划分为第一服务数据和第二服务数据。其中,第一服务数据则表征固定不变的服务数据,第二服务数据则表征可能会进行变化的服务数据。
43.可选的,指定标识可以包括有开始标识和截止标识,其中,开始标识用于标识第一服务数据的开始位置,而截止标识则用于表征第一服务数据的结束位置。如图4中所示,基
于图4中所示的情况下,若确定的第一服务数据包括服务2、特征2、特征描述符2、服务3、特征3以及特征描述符3,那么所对应的指定标识则包括0x0004以及0x0009,其中,0x0004为开始标识,0x0009为截止标识。可选的,可以从服务端包括的服务数据中,所对应的标识排序最靠前的服务数据开始确定第一服务数据,并且是沿标识由小到大的顺序进行依次确定,直到首次检测到不是固定不变的服务数据,进而将该首次检测到不是固定不变的服务数据的前一个服务数据的标识作为指定标识。例如,请再参阅图4,其中服务1对应的标识0x0001为排序最靠前的标识,进而会从0x0001开始依次确定固定不变的服务数据,若首先检测到的不是固定不变的服务数据为服务3,那么则可以确定第一服务数据包括标识0x0001、标识0x0002、标识0x0003、标识0x0004、标识0x0005以及标识0x0006所对应的服务数据。从而会将0x0006作为指定标识。
44.再者,需要说明的是,本技术实施例中所示的固定不变的服务数据可以理解为在服务端所在设备在指定时间周期内不会变化的服务数据。其中,该指定时间周期可以为服务端所在设备的生命周期,也可以是服务端所在设备的某一个运行周期。其中,生命周期可以理解为设备可以会被使用的时间。例如,某个设备会使用两年,那么该设备的生命周期则为两年。其中,运行周期可以为用户设定的周期,例如,用户可以设定一个星期为一个运行周期,也可以设定一个月为一个运行周期。
45.s120:若本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据,基于所述指定标识从所述服务端中获取第二服务数据,所述第二服务数据为所述服务端中除所述第一服务数据以外的服务数据。
46.需要说明的是,在本技术实施例中,在客户端从服务端第一次获取到该指定标识后,则可以根据该指定标识来确定服务端中具体有哪些服务数据是第一服务数据,进而将第一服务数据存储在客户端本地。
47.对应的,客户端在与服务端建立连接后,则可以先获取到服务端对应的指定标识,然后根据获取的指定标识确定本次是否已经存储有所获取的指定标识所标识的第一服务数据,若已经存储有,则可以直接基于该指定标识从服务端去获取第二服务数据。
48.作为一种方式,客户端与服务端建立连接之后还包括:若本地未存储有基于所述指定标识从所述服务端获取的第一服务数据,则从所述服务端获取所述服务端对应的服务数据;将所述服务端对应的服务数据中的第一服务数据存储在本地。
49.s130:将所述第二服务数据和本地的所述第一服务数据作为获取到的所述服务端的服务数据。
50.在本技术实施例中,那么客户端在获取到服务端返回的第二服务数据后,则可以将第二服务数据和第一服务数据进行组合,进而将组合后的服务数据作为获取到的所述服务端对应的服务数据。
51.其中,将第二服务数据和第一服务数据进行组合可以理解为,将第二服务数据和第一服务数据统一按既定顺序进行排序。可以理解的是,服务端中的所有服务数据都是按照一定的顺序排列的。但是,在本技术实施例中,客户端会单独将服务端对应的服务数据中的第一服务数据存储在本地,进而使得第一服务数据和第二服务数据可能是分别进行获取的,则可以通过将第二服务数据和第一服务数据统一按既定顺序进行排序,使得客户端最终所获取到的服务数据的顺序和服务端中本来的顺序是一致的。其中,既定顺序则为服务
端中服务数据的排列顺序。
52.作为一种方式,所述客户端与服务端建立连接之后还包括:若本地未存储有基于所述指定标识从所述服务端获取的第一服务数据,则从所述服务端获取所述服务端对应的服务数据;将所述服务端对应的服务数据中的第一服务数据存储在本地。
53.需要说明的是,作为一种方式,客户端可以是通过服务端所发送的广播数据来发现服务端,并与服务端建立连接。若是第一次建立连接,则在建立连接后可以从服务端中获取指定标识,并基于指定标识再获取第一服务数据。其中,服务端中所发送的广播数据中可以携带有服务端所在设备的设备标识。客户端在存储服务端的第一服务数据时,可以将第一服务数据与该设备标识进行对应存储。从而使得客户端在从服务端发送的广播数据中获取得到设备标识后,通过查询本地是否有该设备标识来确定本地是否存储有预先基于指定标识(设备标识所属设备中的服务端所存储的指定标识)从所述服务端获取的第一服务数据。其中,若查询到本地存储有设备标识,则确定本地存储有预先基于指定标识从所述服务端获取的第一服务数据。
54.本实施例提供的一种数据获取方法,在客户端与服务端建立连接后,客户端进一步的确定本地是否已经预先存储有基于所述指定标识从所述服务端获取的第一服务数据,若有则直接基于所述指定标识从所述服务端中获取服务端中除所述第一服务数据以外的服务数据(第二服务数据),以将所述第二服务数据和本地的所述第一服务数据作为获取到的所述服务端的服务数据。
55.从而通过上述方式使得在服务端将服务数据区分为第一服务数据以及第二服务数据的情况下,使得客户端可以预先通过从服务端中获取第一服务数据以存储在本地,继而使得在后续每次需要获取服务端对应的服务数据的过程中,可以只用通过服务端对应的指定标识去获取第二服务数据,进而减少了每次服务数据的获取过程中需要从服务端中进行数据获取的数据量,提升了从服务端获取服务数据的效率。
56.请参阅图5,本技术实施例提供的一种数据获取方法,所述方法包括:
57.s210:所述客户端与服务端建立连接,所述服务端中存储有指定标识,所述指定标识用于标识所述服务端中的第一服务数据,所述第一服务数据为固定不变的服务数据。
58.s220:若本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据,从本地读取所述指定标识,其中,本地的指定标识为在预先从所述服务端获取第一服务数据时从所述服务端中获取。
59.需要说明的是,在客户端第一次从服务端中获取得到指定标识,并将指定标识所标识的第一服务数据存储在本地时,也可以将获取到的指定标识与第一服务数据进行对应存储,继而使得将指定标识也存储在客户端本地。那么,客户端在与服务端建立连接后,若确定本地存储有基于所述指定标识从所述服务端获取的第一服务数据,则会直接从本地进行指定标识的读取。
60.s230:基于本地读取所述指定标识从所述服务端中获取第二服务数据。
61.作为一种方式,所述基于本地读取所述指定标识从所述服务端中获取第二服务数据,包括:若本地读取所述指定标识与服务端中存储的指定标识一致,则基于本地读取所述指定标识从所述服务端中获取第二服务数据。
62.需要说明的是,服务端中的固定不变的服务数据可以是指的在一定周期时间内不
会变换的服务数据。那么在当前周期时间结束后,在下一个周期时间内固定不变的服务数据则可能会有变化,那么为了使得客户端可以更好的自适应上述周期变化,客户端可以将本地存储的指定标识与服务端中存储的指定标识进行比对。
63.示例性的,若本地读取的指定标识为标识1,且服务端中存储的指定标识也为标识1,那么则从本地读取的指定标识与服务端中存储的指定标识是一致的。若本地读取的指定标识为标识2,且服务端中存储的指定标识为标识1,那么则从本地读取的指定标识与服务端中存储的指定标识不是一致的。
64.再者,需要说明的是,客户端可能会和多种服务端建立过连接,并且,不同服务端各自所对应的指定标识可能是相同的。那么在这种方式中,客户端可以将指定标识以及设备标识(服务端所在设备的设备标识)进行对应的存储,以区别不同服务端各自所对应的指定标识。示例性的,客户端在本地存储的指定标识可以如下表所示。
[0065][0066][0067]
其中,若从本地读取的指定标识为标识2,设备标识为设备2,且从服务端获取到的指定标识为标识2,设备标识为标识2,则客户端确定本地读取所述指定标识与服务端中存储的指定标识一致。若从本地读取的指定标识为标识2,设备标识为设备2,且从服务端获取到的指定标识为标识2,设备标识为标识1,则客户端确定本地读取所述指定标识与服务端中存储的指定标识不一致。并且,在这种情况下,还可以进一步的确定设备2中服务端对应第一服务数据实际已经发生变化,从而用于标识第一服务数据的指定标识也发生了变化,并且,在确定服务端对应第一服务数据实际已经发生变化的情况下,服务端对应的服务数据则需要全部从服务端中重新获取。
[0068]
s240:将所述第二服务数据和本地的所述第一服务数据作为获取到的所述服务端的服务数据。
[0069]
本实施例提供的一种数据获取方法,从而通过上述方式使得在服务端将服务数据区分为第一服务数据以及第二服务数据的情况下,使得客户端可以预先通过从服务端中获取第一服务数据以存储在本地,继而使得在后续每次需要获取服务端对应的服务数据的过程中,可以只用通过服务端对应的指定标识去获取第二服务数据,进而减少了每次服务数据的获取过程中需要从服务端中进行数据获取的数据量,提升了从服务端获取服务数据的效率。并且,在本实施例中,在存储第一服务数据时还会对应的将指定标识存储在本地,从而使得后续在基于指定标识获取第二服务数据时,可以直接从本地进行指定标识的获取,进而有利于提升触发服务端对第二服务数据进行搜索的速度。
[0070]
请参阅图6,本技术实施例提供的一种数据获取方法,所述方法包括:
[0071]
s310:所述客户端与服务端建立连接,所述服务端中存储有指定标识,所述指定标识用于标识所述服务端中的第一服务数据,所述第一服务数据为固定不变的服务数据;
[0072]
s320:若本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据,基于所述指定标识确定服务数据查询范围,所述服务数据查询范围为第二服务数据对应的范围。
[0073]
其中,如前述实施例介绍可知,在本技术实施例中,指定标识可以有多种实施方式。而对于不同的实施方式的指定标识,则所对应的确定的数据查询范围也可能会有不同。
[0074]
作为一种方式,所述指定标识为指定标识区间中排序在最后的一个标识,所述指定标识区间的开始标识为所述服务端中的排序最前的一个标识,所述指定标识区间为所述第一服务数据对应的标识所在的区间;所述基于所述指定标识确定服务数据查询范围,包括:将排序在所述指定标识之后的标识所在范围作为服务数据查询范围。也就是说,在第一服务数据是从排序在最前标识开始起算的情况下,指定标识为第一服务数据所包括的服务数据对应的标识中,排序在最后的标识。并且,在服务数据对应的标识都是从小到大进行排序的情况下,指定标识则为第一服务数据所包括的服务数据对应的标识中,最大的一个标识。示例性的,请再参阅图4,在这种方式中若指定标识为0x0006,那么所确定的服务数据查询范围则为0x0007到最后一个标识。
[0075]
作为另外一种方式,指定标识会包括有开始标识和截止标识,那么则客户端会将服务端中的排序最前的一个标识到开始标识之间的范围,以及截止标识之后的范围作为服务数据查询范围。示例性的,请再参阅图4,在这种方式中若开始标识为0x0004,截止标识为0x0006,那么所确定的服务数据查询范围会包括0x0001(排序最前的一个标识)到0x0003,以及包括0x0007之后的范围。
[0076]
作为一种方式,所述指定标识为指定标识区间中排序在最后的一个标识,所述指定标识区间的开始标识为所述服务端中的排序最前的一个标识,所述指定标识区间为所述第一服务数据对应的标识所在的区间;所述基于所述指定标识确定服务数据查询范围,包括:将排序在所述指定标识之后的标识所在范围作为服务数据查询范围。
[0077]
s330:触发所述服务端基于所述服务数据查询范围进行服务数据查找,以获取到查找到的第二服务数据,所述第二服务数据为所述服务端中除所述第一服务数据以外的服务数据。
[0078]
s340:将所述第二服务数据和本地的所述第一服务数据作为获取到的所述服务端的服务数据。
[0079]
本实施例提供的一种数据获取方法,从而通过上述方式使得在服务端将服务数据区分为第一服务数据以及第二服务数据的情况下,使得客户端可以预先通过从服务端中获取第一服务数据以存储在本地,继而使得在后续每次需要获取服务端对应的服务数据的过程中,可以只用通过服务端对应的指定标识去获取第二服务数据,进而减少了每次服务数据的获取过程中需要从服务端中进行数据获取的数据量,提升了从服务端获取服务数据的效率。并且,在本实施例中客户端还可以进一步的根据指定标识确定出服务数据查询范围,从而使得服务端能够直接基于客户端所确定的服务数据查询范围进行服务数据的获取,进一步的提升了获取效率。
[0080]
请参阅图7,本技术实施例提供的一种数据获取方法,所述方法包括:
[0081]
s410:所述客户端与服务端建立连接,所述服务端中存储有指定标识,所述指定标识用于标识所述服务端中的第一服务数据,所述第一服务数据为固定不变的服务数据;
[0082]
s420:获取服务端所在设备的设备标识。
[0083]
其中,设备标识为用于对设备的唯一性进行标识的信息。在本技术实施例中,设备标识可以有多种的实施方式。
[0084]
作为一种方式,设备标识可以通过设备所对应的网络地址来实施。在这种方式下,可以将设备的网络地址作为设备的设备标识。例如,若服务端所在设备是通过蓝牙通信的方式发送无线数据。那么基于蓝牙通信的方式所发送的无线数据中会携带有设备的蓝牙地址,进而客户端可以将无线数据中所携带的蓝牙地址作为设备的设备标识。其中,在采用蓝牙地址作为设备标识的情况下,蓝牙地址为public类型的地址,以便使得设备的蓝牙地址是固定不变的。
[0085]
作为另外一种方式,设备标识可以为基于指定协议生成的随机数,并且每次生成的随机数可以不同,从而使得不同设备对应的设备标识可以是唯一的。在服务端每次发送无线数据的时候,可以将该作为设备标识的随机数增加到所发送的无线数据中,从而使得接收到该无线数据的客户端可以了解到当前的无线数据是由哪个服务端发送的。
[0086]
那么在设备标识可以有多种实施方式的情况下,客户端则可以采用既定的方式来获取得到设备标识。
[0087]
可选的,若客户端所配置的既定方式为通过获取无线数据中所携带的网络地址来作为设备标识,那么客户端在获取得到服务端发送的无线数据后,则可以直接从无线数据中进行网络地址的提取,以作为服务端所在设备的设备标识。可选的,若客户端所配置的既定方式为通过获取无线数据中所携带的随机数来作为设备标识,那么客户端在获取得到服务端发送的无线数据后,则可以直接从无线数据中进行随机数的提取,以作为服务端所在设备的设备标识。
[0088]
再则,客户端也可以通过自适应的方式来进行设备标识的获取。需要说明的是,不同的服务端在对自己所在设备进行标识时,所采用的标识方式可能是不同的。例如,虽然设备所发送的无线数据中都可能会携带有网络地址,但是有个的设备采用的为随机网络地址(random类型的网络地址),进而就可能使得不同设备的网络地址是相同的,那么在这种情况下,网络地址就没有办法很好的对设备进行唯一性标识。
[0089]
作为一种方式,客户端在获取设备标识的过程中,可以先检测无线数据中采用的网络地址的类型;若检测到网络地址为固定类型的网络地址,则直接将获取到的网络地址作为发送该无线数据的设备的设备标识;若检测到网络地址为随机类型的网络地址,则进一步的检测无线数据中是否携带有基于指定协议生成的随机数;若检测到有基于指定协议生成的随机数,则将该基于指定协议生成的随机数作为发送该无线数据的设备的设备标识。若未检测到有基于指定协议生成的随机数,则直接从服务端中获取所有服务数据作为所述服务端对应的服务数据。
[0090]
需要说明的是,在本技术实施例中,客户端在获取到从服务端中获取得到第一服务数据之后,可以将设备标识与第一服务数据进行对应存储。
[0091]
s430:检测本地是否存储有所述设备标识对应的服务数据。
[0092]
如前述内容接介绍,客户端在存储第一服务数据时,是可以将设备标识与第一服务数据进行对应存储。那么客户端检测本地是否存储有所述设备标识对应的服务数据则实际可以理解为,客户端确定本地是否有基于从所述服务端获取的第一服务数据。并且,该第
一服务数据是由设备标识所在无线数据中的指定标识所标识的服务数据。
[0093]
s440:若本地未存储有与所述设备标识对应的服务数据,则确定本地未存储有预先基于所述指定标识从所述服务端获取的第一服务数据。
[0094]
s450:若本地存储有与所述设备标识对应的服务数据,则确定本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据。
[0095]
s460:若本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据,基于所述指定标识从所述服务端中获取第二服务数据,所述第二服务数据为所述服务端中除所述第一服务数据以外的服务数据。
[0096]
s470:将所述第二服务数据和本地的所述第一服务数据作为获取到的所述服务端的服务数据。
[0097]
本实施例提供的一种数据获取方法,从而通过上述方式使得在服务端将服务数据区分为第一服务数据以及第二服务数据的情况下,使得客户端可以预先通过从服务端中获取第一服务数据以存储在本地,继而使得在后续每次需要获取服务端对应的服务数据的过程中,可以只用通过服务端对应的指定标识去获取第二服务数据,进而减少了每次服务数据的获取过程中需要从服务端中进行数据获取的数据量,提升了从服务端获取服务数据的效率。并且,在本实施例中在存储第一服务数据的过程中,会将第一服务数据、服务端所在设备的设备标识进行对应的存储,从而在确定存储有设备标识对应的服务数据的情况下,可以直接确定存储有该服务端的第一服务数据。
[0098]
请参阅图8,本技术实施例提供的一种数据获取方法,应用于服务端,所述方法包括:
[0099]
s510:所述服务端与客户端建立连接,所述服务端中存储有指定标识,所述指定标识用于标识所述服务端中的第一服务数据,所述第一服务数据为固定不变的服务数据。
[0100]
s520:响应于客户端发送的与所述指定标识对应的获取请求,从所述服务端中获取第二服务数据,所述获取请求为所述客户端在确定本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据后发送。
[0101]
作为一种方式,所述响应于客户端发送的与所述指定标识对应的获取请求,从所述服务端中获取第二服务数据,包括:
[0102]
响应于客户端发送的与所述指定标识对应的获取请求,从所述获取请求中获取服务数据查询范围,在所述服务端中查询所述服务数据查询范围对应的服务数据作为第二服务数据。
[0103]
s530:将所述第二服务数据发送给所述客户端,以用于使所述客户端将所述第二服务数据和本地的第一服务数据作为获取到的所述服务端的服务数据。
[0104]
需要说明的是,在本技术实施例中,在客户端从服务端获取指定标识之前,客户端可以先检测与服务端之间是否已经建立授信关系,若已经建立授信关系,则可以直接按照已经建立授信关系所对应的服务获取方式进行服务端中的服务获取。若未建立授信关系,则可以执行后续的从服务端获取指定标识。其中,若客户端与服务端之间已经建立授信关系,则表征客户端和服务端之间已经进行了身份认证。
[0105]
下面再通过一个示例来对本技术实施例所涉及的一个实际场景的流程进行介绍。如图9所示,图9所示的流程包括:
[0106]
s610:gatt客户端获取gatt服务端发送的广播数据。
[0107]
s620:gatt客户端与gatt服务端建立连接。
[0108]
s630:gatt客户端检测是否与该服务端是第一次建立连接。
[0109]
其中,gatt客户端检测是否与该服务端是第一次建立连接的方式可以有多种。例如,可以采用前述实施例中的检测本地是否存储有与gatt服务端所在设备的设备标识对应的服务数据的方式进行检测,对应的,若本地存储有设备标识对应的服务数据,则确定不是第一次连接,反之,若本地未存储有设备标识对应的服务数据,则确定是第一次连接。再例如,也可以采用检测从广播数据中获取的指定标识与本地存储的指定标识是否一致的方式进行检测,对应的,若检测到从广播数据中获取的指定标识与本地存储的指定标识一致,则确定不是第一次连接,反之,若检测到从广播数据中获取的指定标识与本地存储的指定标识一致,或者,本地并未存储过指定标识,则确定是第一次连接。
[0110]
s640:若是第一次连接,gatt客户端触发从服务端的所有服务数据中排序在最前的一个服务数据开始进行服务搜索。
[0111]
其中,服务端中的服务数据可以是按照一定的顺序排列的。例如,如图4中,对应的标识为0x0001的服务数据则为服务端的所有服务数据中排序在最前的一个服务数据。那么在gatt客户端在确定是与该gatt服务端为第一次建立连接的情况下,则会触发开始从gatt服务端中标识为0x0001的服务数据进行服务搜索。
[0112]
s641:从gatt服务端的数据库中指定特征中获取指定标识。
[0113]
需要说明的是,在本实施例中,可以将指定标识以服务数据中的特征的形式进行存储,并将存储有指定标识的特征作为指定特征。
[0114]
s642:gatt客户端将搜索到的服务数据中第一服务数据存储在本地。
[0115]
在gatt客户端在确定是与该gatt服务端为第一次建立连接的情况下,gatt客户端实际会是对gatt服务端中的所有服务数据均搜索一遍,从而发现gatt服务端中的所有服务数据。那么为了便于
[0116]
s650:若不是第一次连接,gatt客户端触发从本地读取第一服务数据。
[0117]
s651:gatt客户端触发从指定标识后的第一个服务数据开始进行服务搜索,以得到第二服务数据。
[0118]
需要说明的是,在图9所示的实施例中,指定标识表征的是从排序在最前的一个服务数据开始进行固定数据检测的方式中,对应的排序最后的一个服务数据所对应的标识。也可以理解为指定标识是固定不变的服务数据中对应的标识最大的一个标识。其中,服务数据的排序等同于服务数据对应的标识的排序。例如,请在参阅图4,若从0x0001开始确定固定不变的服务数据,并且,确定的固定不变的服务数据包括服务1、特征1、特征描述符1、服务2、特征2以及特征描述符2。那么在确定的不变的固定不变的服务数据中,对应的标识最大的一个标识则为0x0006,那么所确定的指定标识为0x0006。那么在gatt客户端确定与gatt服务端第一次建立连接后,所存储在本地的第一服务数据则会包括服务1、特征1、特征描述符1、服务2、特征2以及特征描述符2。那么再后续的非首次建立连接后,则会从0x0007开始进行服务数据的搜索。
[0119]
其中,在得到第一服务数据和第二服务数据之后的处理方式可以参见前述实施例中的内容。
[0120]
请参阅图10,本技术实施例提供的一种数据获取装置600,运行于客户端,所述装置600包括:
[0121]
连接管理单元610,用于与服务端建立连接,所述服务端中存储有指定标识,所述指定标识用于标识所述服务端中的第一服务数据,所述第一服务数据为固定不变的服务数据。
[0122]
第一数据获取单元620,用于若本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据,基于所述指定标识从所述服务端中获取第二服务数据,所述第二服务数据为所述服务端中除所述第一服务数据以外的服务数据。
[0123]
第二数据获取单元630,用于将所述第二服务数据和本地的所述第一服务数据作为获取到的所述服务端的服务数据。
[0124]
作为一种方式,第一数据获取单元620,具体用于若本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据,从本地读取所述指定标识,其中,本地的指定标识为在预先从所述服务端获取第一服务数据时从所述服务端中获取;基于本地读取所述指定标识从所述服务端中获取第二服务数据。可选的,第一数据获取单元,具体用于若本地读取所述指定标识与服务端中存储的指定标识一致,则基于本地读取所述指定标识从所述服务端中获取第二服务数据。
[0125]
作为一种方式,第一数据获取单元620,具体用于若本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据,基于所述指定标识确定服务数据查询范围,所述服务数据查询范围为第二服务数据对应的范围;触发所述服务端基于所述服务数据查询范围进行服务数据查找,以获取到查找到的第二服务数据。可选的,所述指定标识为指定标识区间中排序在最后的一个标识,所述指定标识区间的开始标识为所述服务端中的排序最前的一个标识,所述指定标识区间为所述第一服务数据对应的标识所在的区间;第一数据获取单元620,具体用于将排序在所述指定标识之后的标识所在范围作为服务数据查询范围。
[0126]
作为一种方式,第一数据获取单元620,还具体用于获取服务端所在设备的设备标识;若本地存储有与所述设备标识对应的服务数据,则确定本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据。
[0127]
作为一种方式,作为一种方式,第二数据获取单元630,还用于若本地未存储有基于所述指定标识从所述服务端获取的第一服务数据,则从所述服务端获取所述服务端对应的服务数据;将所述服务端对应的服务数据中的第一服务数据存储在本地。
[0128]
作为一种方式,所述客户端为gatt客户端,所述服务端为gatt服务端,所述gatt服务端对应的数据库中设置有指定特征,所述指定特征的值用于记录所述指定标识。
[0129]
请参阅图11,本技术实施例提供的一种数据获取装置700,运行于客户端,所述装置700包括:
[0130]
连接管理单元710,用于与客户端建立连接,所述服务端中存储有指定标识,所述指定标识用于标识所述服务端中的第一服务数据,所述第一服务数据为固定不变的服务数据。
[0131]
数据查找单元720,用于响应于客户端发送的与所述指定标识对应的获取请求,从所述服务端中获取第二服务数据,所述获取请求为所述客户端在确定本地存储有预先基于所述指定标识从所述服务端获取的第一服务数据后发送。
[0132]
作为一种方式,数据查找单元720,具体用于响应于客户端发送的与所述指定标识对应的获取请求,从所述获取请求中获取服务数据查询范围,在所述服务端中查询所述服务数据查询范围对应的服务数据作为第二服务数据。
[0133]
数据发送单元730,用于将所述第二服务数据发送给所述客户端,以用于使所述客户端将所述第二服务数据和本地的第一服务数据作为获取到的所述服务端的服务数据。
[0134]
本实施例提供的一种数据获取装置,在客户端与服务端建立连接后,客户端进一步的确定本地是否已经预先存储有基于所述指定标识从所述服务端获取的第一服务数据,若有则直接基于所述指定标识从所述服务端中获取服务端中除所述第一服务数据以外的服务数据(第二服务数据),以将所述第二服务数据和本地的所述第一服务数据作为获取到的所述服务端的服务数据。从而通过上述方式使得在服务端将服务数据区分为第一服务数据以及第二服务数据的情况下,使得客户端可以预先通过从服务端中获取第一服务数据以存储在本地,继而使得在后续每次需要获取服务端对应的服务数据的过程中,可以只用通过服务端对应的指定标识去获取第二服务数据,进而减少了每次服务数据的获取过程中需要从服务端中进行数据获取的数据量,提升了从服务端获取服务数据的效率。
[0135]
需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本技术所提供的几个实施例中,模块相互之间的耦合可以是电性。另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0136]
下面将结合图12对本技术提供的一种电子设备进行说明。
[0137]
请参阅图12,基于上述的数据获取方法、装置,本技术实施例还提供的另一种可以执行前述数据获取方法的电子设备100。电子设备100包括相互耦合的一个或多个(图中仅示出一个)处理器102、存储器104以及无线模块106。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
[0138]
其中,处理器102可以包括一个或者多个处理核。处理器102利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器102可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
[0139]
存储器104可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read

only memory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于
实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
[0140]
所述无线模块106用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。所述无线模块106可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(sim)卡、存储器等等。所述无线模块106可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。例如,无线模块106可以与基站进行信息交互。
[0141]
请参考图13,其示出了本技术实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1100中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
[0142]
计算机可读存储介质1100可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质1100包括非易失性计算机可读介质(non

transitory computer

readable storage medium)。计算机可读存储介质1100具有执行上述方法中的任何方法步骤的程序代码1110的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1110可以例如以适当形式进行压缩。
[0143]
综上所述,本技术提供的一种数据获取方法、装置、电子设备及存储介质,在客户端与服务端建立连接后,客户端进一步的确定本地是否已经预先存储有基于所述指定标识从所述服务端获取的第一服务数据,若有则直接基于所述指定标识从所述服务端中获取服务端中除所述第一服务数据以外的服务数据(第二服务数据),以将所述第二服务数据和本地的所述第一服务数据作为获取到的所述服务端的服务数据。
[0144]
从而通过上述方式使得在服务端将服务数据区分为第一服务数据以及第二服务数据的情况下,使得客户端可以预先通过从服务端中获取第一服务数据以存储在本地,继而使得在后续每次需要获取服务端对应的服务数据的过程中,可以只用通过服务端对应的指定标识去获取第二服务数据,进而减少了每次服务数据的获取过程中需要从服务端中进行数据获取的数据量,提升了从服务端获取服务数据的效率。
[0145]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献