CN116723491A - 数据交互方法、装置、电子设备及存储介质 - Google Patents
数据交互方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116723491A CN116723491A CN202310809027.4A CN202310809027A CN116723491A CN 116723491 A CN116723491 A CN 116723491A CN 202310809027 A CN202310809027 A CN 202310809027A CN 116723491 A CN116723491 A CN 116723491A
- Authority
- CN
- China
- Prior art keywords
- data
- attribute
- electronic device
- data packet
- response
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 230000003993 interaction Effects 0.000 title claims abstract description 61
- 230000004044 response Effects 0.000 claims abstract description 268
- 230000005540 biological transmission Effects 0.000 claims description 86
- 230000008569 process Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 18
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
- H04W28/065—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/14—Direct-mode setup
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例公开了一种数据交互方法、装置、电子设备及存储介质。该方法应用于第一电子设备,该方法包括:向第二电子设备发送数据读取请求;所述数据读取请求用于触发所述第二电子设备根据配置的属性数据集合生成至少一个应答数据包,所述属性数据集合包括一个或多个属性数据,所述至少一个应答数据包携带所述一个或多个属性数据;接收所述第二电子设备发送的所述至少一个应答数据包;根据所述至少一个应答数据包,确定所述属性数据集合。上述的数据交互方法、装置、电子设备及存储介质,能够有效减少第一电子设备获取第二电子设备配置的属性数据集合的时间。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种数据交互方法、装置、电子设备及存储介质。
背景技术
蓝牙是一种支持设备短距离通信的无线电技术,能够实现在多个支持蓝牙传输的电子设备之间的无线数据传输,使得电子设备之间的数据传输更加迅速和高效。为了实现更低功耗的蓝牙通信技术,蓝牙技术联盟推出了BLE(Bluetooth Low Energy,蓝牙低能耗)技术,而随着BLE技术的发展及推广,市面上应用BLE技术的电子设备也越来越多。
支持BLE技术的两个电子设备在建立蓝牙BLE连接的过程中,会进行GATT(GenericAttribute Profile,通用属性配置文件)连接,并进行GATT数据库(GATT Database)同步。目前进行GATT Database同步的过程需要花费较多的时间,导致建立蓝牙BLE连接的时间较长,影响了建立蓝牙BLE连接的连接速度。
发明内容
本申请实施例公开了一种数据交互方法、装置、电子设备及存储介质,能够有效减少第一电子设备获取第二电子设备配置的属性数据集合的时间。
本申请实施例公开了一种数据交互方法,应用于第一电子设备,所述方法包括:
向第二电子设备发送数据读取请求;所述数据读取请求用于触发所述第二电子设备根据配置的属性数据集合生成至少一个应答数据包,所述属性数据集合包括一个或多个属性数据,所述至少一个应答数据包携带所述一个或多个属性数据;
接收所述第二电子设备发送的所述至少一个应答数据包;
根据所述至少一个应答数据包,确定所述属性数据集合。
本申请实施例公开了一种数据交互方法,应用于第二电子设备,所述方法包括:
接收第一电子设备发送的数据读取请求;
响应于所述数据读取请求,根据配置的属性数据集合生成至少一个应答数据包;所述属性数据集合包括一个或多个属性数据,所述至少一个应答数据包携带所述一个或多个属性数据;
向所述第一电子设备发送所述至少一个应答数据包,以使所述第一电子设备根据所述至少一个应答数据包,确定所述属性数据集合。
本申请实施例公开了一种数据交互装置,应用于第一电子设备,所述装置包括:
发送模块,用于向第二电子设备发送数据读取请求;所述数据读取请求用于触发所述第二电子设备根据配置的属性数据集合生成至少一个应答数据包,所述属性数据集合包括一个或多个属性数据,所述至少一个应答数据包携带所述一个或多个属性数据;
接收模块,用于接收所述第二电子设备发送的所述至少一个应答数据包;
数据确定模块,用于根据所述至少一个应答数据包,确定所述属性数据集合。
本申请实施例公开了一种数据交互装置,应用于第二电子设备,所述装置包括:
接收模块,用于接收第一电子设备发送的数据读取请求;
生成模块,用于响应于所述数据读取请求,根据配置的属性数据集合生成至少一个应答数据包;所述属性数据集合包括一个或多个属性数据,所述至少一个应答数据包携带所述一个或多个属性数据;
发送模块,用于向所述第一电子设备发送所述至少一个应答数据包,以使所述第一电子设备根据所述至少一个应答数据包,确定所述属性数据集合。
本申请实施例公开了一种电子设备,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现如上任一实施例所述的方法。
本申请实施例公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一实施例所述的方法。
本申请实施例公开的数据交互方法、装置、电子设备及存储介质,第一电子设备向第二电子设备发送数据读取请求,第二电子设备响应该数据读取请求,根据配置的属性数据集合生成至少一个应答数据包,该至少一个应答数据包携带属性数据集合包括的属性数据,第一电子设备接收第二电子设备发送的该至少一个应答数据包,并根据该至少一个应答数据包,确定属性数据集合。在本申请实施例中,第一电子设备通过向第二电子设备发送数据读取请求,可以触发第二电子设备根据配置的属性数据集合生成应答数据包并进行统一传递,能够有效减少第一电子设备获取第二电子设备配置的属性数据集合的时间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中数据交互方法的应用场景图;
图2为一个实施例中数据交互方法的时序示意图;
图3为一个实施例中数据交互方法的流程图;
图4为一个实施例中属性表包括的各个属性的数据结构;
图5为另一个实施例中数据交互方法的流程图;
图6为一个实施例中数据单元的格式示意图;
图7为另一个实施例中数据交互方法的流程图;
图8A为一个实施例中GATT服务器与GATT客户端同步GATT数据库的示意图;
图8B为另一个实施例中GATT服务器与GATT客户端同步GATT数据库的示意图;
图9为另一个实施例中数据交互方法的流程图;
图10为另一个实施例中数据交互方法的流程图;
图11为一个实施例中数据交互装置的框图;
图12为另一个实施例中数据交互装置的框图;
图13为一个实施例中电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例及附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一电子设备称为第二电子设备,且类似地,可将第二电子设备称为第一电子设备。第一电子设备和第二电子设备两者都是电子设备,但其不是同一电子设备。本申请所使用的术语“多个”指的是两个及两个以上。本申请所使用的术语“和/或”指的是其中的一种方案,或是其中多种方案的任意组合。
下面对本申请实施例涉及的一些技术用语进行说明。
BLE:蓝牙低功耗技术,是蓝牙技术联盟推出的一种标准蓝牙通信协议,旨在保持同等通信范围的同时显著降低功耗和成本。
GATT:是BLE中的一个基本协议,BLE连接通常是建立在GATT协议之上,是一个在BLE连接上发送和接收很短的数据段的通用规范,应用于不同设备之间的数据传输中。
ATT(Attribute protocol,属性协议):是GAP(Generic Access Profile,通用访问配置文件)和GATT的基础,其允许服务端设备向客户端设备公开一组属性及相关值,服务端设备公开的属性可以被客户端发现、读取及写入。
属性(Attribute):一个profile(数据配置文件)中可包括一个或多个服务,一个服务包含一个或多个特性,一个特性至少包括两个属性,所有通过GATT服务传输的数据映射成一系列的特性,一个属性可理解为是一条数据,属性是BLE数据提供单元,一个属性可包括属性句柄(Attribute Handle)、UUID(Universally Unique Identifier,通用唯一标识码)和属性值(Attribute Value)等。
属性句柄,用于标识对应的属性,属性句柄是属性在GATT Database中的索引。
UUID,用于标识属性对应的属性类型(Attribute type),不同属性类型可分别对应不同的UUID,不同的属性可能对应相同的UUID。
属性值,指的是一个属性包含的有效负载,即属性对应的真正的值。
属性权限(Attribute Permissions):用于保护属性值,通常不会在空中包中体现。
GATT服务端(Server):指的是提供数据的设备。
GATT客户端(Client):指的是能够访问GATT服务端从而获得数据,或者向GATT服务端写入数据的设备。
TLV:BER(Basic Encoding Rules)编码格式中的一种,T表示Type(类型),L表示Length(长度),V表示Value(值)。
在相关技术中,支持BLE技术的两个电子设备在建立蓝牙BLE连接的过程中,会进行GATT(Generic Attribute Profile,通用属性配置文件)连接,并进行GATT数据库(GATTDatabase)同步,该GATT Database同步可理解为服务端设备向客户端设备公开一组属性及相关值。目前进行GATT Database同步的方式,主要是基于GATT Search(GATT服务搜索)的传输方案,每个分包以属性类型进行传输数据,GATT客户端每次向GATT服务端发送属性类型对应的UUID,GATT服务端再向GATT客户端返回与该UUID相关的属性数据。这种GATTDatabase同步的方式无法有效利用空口资源,会导致在同步过程中需要大量的request-response(请求-响应)空包交换,特别是在GATT Database数据量较大的情况下,需要花费较长的时间进行GATT Database同步,导致建立蓝牙BLE连接的时间较长,影响了建立蓝牙BLE连接的连接速度。
本申请实施例公开的数据交互方法、装置、电子设备及存储介质,能够有效减少第一电子设备获取第二电子设备配置的属性数据集合的时间,可以提高第一电子设备与第二电子设备建立蓝牙BLE连接的连接速度。
图1为一个实施例中数据交互方法的应用场景图。如图1所示,第一电子设备10与第二电子设备20可在建立BLE连接的过程中进行数据交互,第一电子设备10可获取第二电子设备20配置的属性数据集合,以方便后续第一电子设备10根据该属性数据集合,对第二电子设备20的属性数据进行操作。
第一电子设备10及第二电子设备20可包括但不限于手机、可穿戴设备、耳机、音箱、车载终端、平板电脑、PC(Personal Computer,个人电脑)、PDA(Personal DigitalAssistant,个人数字助理)等设备。
在一些实施例中,第一电子设备10可作为BLE连接中的GATT客户端,用于访问第二电子设备20以获取数据;第二电子设备20可作为BLE连接中的GATT服务端,用于向第一电子设备10提供数据;第二电子设备20可向第一电子设备10同步配置的属性数据集合。需要说明的是,第一电子设备10及第二电子设备20在GATT中的角色是可以切换的,并不是固定的,且同一个电子设备也可同时作为GATT服务端及GATT客户端,本申请实施例对第一电子设备10及第二电子设备20在BLE连接中的角色不作限定。
第一电子设备10可向第二电子设备20发送数据读取请求,第二电子设备20接收到第一电子设备10发送的数据读取请求,响应于该数据读取请求,可根据配置的属性数据集合生成至少一个应答数据包,该至少一个应答数据包可包括属性数据集合中包括的各个属性数据。第二电子设备20可向第一电子设备10发送该至少一个应答数据包,第一电子设备10接收第二电子设备20发送的该至少一个应答数据包,可根据该至少一个应答数据包,确定第二电子设备20配置的属性数据集合。
图2为一个实施例中数据交互方法的时序示意图。如图2所示,数据交互方法可包括以下步骤:
步骤1、第一电子设备向第二电子设备发送数据读取请求。
步骤2、第二电子设备响应于第一电子设备发送的数据读取请求,根据配置的属性数据集合生成至少一个应答数据包。
步骤3、第二电子设备向第一电子设备发送生成的该至少一个应答数据包。
步骤4、第一电子设备根据第二电子设备发送的该至少一个应答数据包,确定第二电子设备中配置的属性数据集合。
如图3所示,在一个实施例中,提供一种数据交互方法,可应用于上述的第一电子设备,该方法可包括以下步骤:
步骤310,向第二电子设备发送数据读取请求;数据读取请求用于触发第二电子设备根据配置的属性数据集合生成至少一个应答数据包。
在一些实施例中,第一电子设备可与第二电子设备建立BLE连接,在建立BLE连接的过程中,第一电子设备可向第二电子设备发送数据读取请求。进一步地,在第一电子设备与第二电子设备建立BLE连接的过程中,第一电子设备与第二电子设备可先建立GATT连接,第一电子设备再向第二电子设备发送数据读取请求,以获取第二电子设备配置的属性数据集合,而不用再进行GATT Search的相关流程。
数据读取请求用于请求获取第二电子设备配置的属性数据集合。第二电子设备接收到第一电子设备发送的数据读取请求后,可响应该数据读取请求,根据配置的属性数据集合生成至少一个应答数据包。
第二电子设备配置的属性数据集合中可包括一个或多个属性数据。在一些实施例中,第二电子设备中可存储有属性表,属性表可存储第二电子设备中配置的各个属性。示例性地,图4为一个实施例中属性表包括的各个属性的数据结构。如图4所示,一个属性可包括属性句柄、属性类型(以UUID表示)、属性值及属性权限等,需要说明的是,图4所示的属性的数据结构可为属性在存储器中存储时的数据结构。
属性数据集合可包括属性表中存储的各个属性对应的属性数据,每个属性数据可包括一个属性的属性句柄、属性类型对应的UUID及属性值等数据,可选地,由于属性权限通常不会在空中包中体现,因此,属性数据可以不包括属性权限。在后续第一电子设备与第二电子设备通过建立的BLE连接进行数据传输时,第二电子设备可基于该属性表组织数据,并向第一电子设备发送数据,第一电子设备在获取第二电子设备的属性数据集合后,也可根据该属性数据集合访问第二电子设备并获取相应的数据,或者根据该属性数据集合将数据写入到第二电子设备等。
在一些实施例中,数据读取请求可包括目标句柄,该目标句柄可用于指示第二电子设备配置的属性数据集合,携带有目标句柄的数据读取请求表示请求获取第二电子设备配置的属性数据集合。在第一电子设备与第二电子设备建立BLE连接的过程中,第一电子设备可向第二电子设备发送携带目标句柄的数据读取请求,第二电子设备接收到第一电子设备发送的数据读取请求后,可对该数据读取请求进行解析,以得到数据读取请求中携带的句柄。第二电子设备若确定该句柄为目标句柄,即确定数据读取请求携带该目标句柄,则可根据配置的属性数据集合生成至少一个应答数据包。
目标句柄可根据实际需求进行定义或设置,例如,目标句柄可为0xFFFF等,但不限于此。需要说明的是,目标句柄与属性表包含的各个属性对应的属性句柄不同。
作为一种具体实施方式,数据读取请求可包括ATT_READ_REQ命令,ATT_READ_REQ命令可为ATT中规定的用于读取数据的命令,ATT_READ_REQ命令在相关技术中通常用于GATT客户端读取GATT服务端的某个数据的请求,比如,GATT服务端包括温度传感器,该温度传感器采集温度数据,GATT客户端可发送携带有温度数据对应的属性句柄的ATT_READ_REQ命令,以从GATT服务端读取采集的温度数据。在本申请实施例中,第一电子设备可利用ATT_READ_REQ命令获取第二电子设备配置的属性数据集合,上述的目标句柄的格式可与属性句柄的格式相同,因此,不需要改动ATT_READ_REQ命令的PDU(protocol data unit,协议数据单元)数据格式,只要约定目标句柄即可达到获取属性数据集合的目的。
第二电子设备根据配置的属性数据集合成至少一个应答数据包,该至少一个应答数据包可携带属性数据集合包括的一个或多个属性数据,即生成的至少一个应答数据包可包括属性数据集合中的各个属性数据,生成的所有应答数据包整体上携带属性数据集合。例如,第二电子设备的属性表中包含有M个属性,该M可为正整数,则属性数据集合可包含与该M个属性一一对应的M个属性数据,第二电子设备根据该M个属性数据生成至少一个应答数据包,该至少一个应答数据包携带该M个属性数据,需要说明的是,该至少一个应答数据包携带该M个属性数据,指的是生成的所有应答数据包整体上携带该M个属性数据。
第二电子设备生成的应答数据包的数量由属性数据集合的数据量决定,数据量越大,生成的应答数据包的数量越多,在生成多个应答数据包的情况下,每个应答数据包携带属性数据集合的部分属性数据,在仅生成一个应答数据包的情况下,该应答数据包携带属性数据集合的所有属性数据。
需要说明的是,属性数据集合也可以仅包含属性表中部分属性对应的属性数据,并不一定包含所有属性对应的属性数据,可根据实际需求进行调整。
步骤320,接收第二电子设备发送的至少一个应答数据包。
步骤330,根据该至少一个应答数据包,确定属性数据集合。
第二电子设备可向第一电子设备发送生成的各个应答数据包,第一电子设备接收到第二电子设备发送的各个应答数据包后,可根据接收的各个应答数据包,确定第二电子设备配置的属性数据集合。第一电子设备可对接收的应答数据包进行解析,以得到各个应答数据包中携带的属性数据,解析得到的所有属性数据即组成属性数据集合。
在本申请实施例中,第一电子设备通过向第二电子设备发送数据读取请求,可以触发第二电子设备根据配置的属性数据集合生成应答数据包并进行统一传递,能够有效减少第一电子设备获取第二电子设备配置的属性数据集合的时间。相较于相关技术中基于GATT Search的传输方案,可以减少大量的request-response空包交换的时间,从而优化了整体建立BLE连接的时间。
如图5所示,在另一个实施例中,提供一种数据交互方法,可应用于上述的第一电子设备,该方法可包括以下步骤:
步骤502,向第二电子设备发送数据读取请求;数据读取请求用于触发第二电子设备按照目标格式分别对各个属性数据进行封装,以得到各个属性数据对应的数据单元,并根据各个属性数据对应的数据单元生成至少一个应答数据包。
第二电子设备接收第一电子设备发送的数据读取请求后,可响应于该数据读取请求,获取属性数据集合,按照目标格式分别对属性数据集合包含的各个属性数据进行封装,以得到各个属性数据对应的数据单元,并根据各个属性数据对应的数据单元生成至少一个应答数据包。
目标格式可以是根据实际需求进行配置的数据格式,可按照目标格式对各个属性数据进行封装,一个属性数据可被封装为一个数据单元,也即,一个属性数据中包含的属性句柄、UUID及属性值可被封装到一个数据单元中。通过将属性数据集合包含的各个属性数据封装为对应的数据单元,可方便第一电子设备进行解析,得到属性数据。
作为一种实施方式,目标格式可包括TLV格式,数据单元的类型字段可用于指示封装的属性数据对应的属性类型,数据单元的值字段可用于承载封装的属性数据,数据单元的长度字段用于指示数据单元的类型字段及值字段的数据长度。
示例性地,图6为一个实施例中数据单元的格式示意图。如图6所示,属性数据集合包含的各个属性数据可被封装为对应的数据单元,每个数据单元可包括长度字段、类型字段及值字段。值字段可用于承载一个属性的属性句柄、属性类型(即UUID)及属性值等属性数据。类型字段可用于指示值字段承载的属性数据对应的属性类型,可选地,不同的属性类型可对应不同的属性标识,该属性标识可以是自定义的标识,属性标识可由数字、字母及符号等中的一种或多种组成,例如,属性类型为primary(主要服务),对应的属性标识可为01,属性类型为Characteristic(特性),对应的属性标识可为04等,但不限于此,类型字段承载自定义的属性标识,既可以标识属性类型,又可以减少传输的数据量。在其它的实施例中,属性标识也可以是属性类型对对应的UUID等。长度字段可用于指示类型字段与值字段的数据长度(如类型字段与值字段的总数据长度,或者类型字段的数据长度及值字段的数据长度)。
第二电子设备在将属性数据集合包含的各个属性数据封装为对应的数据单元后,可根据各个属性数据对应的数据单元生成至少一个应答数据包。在一些实施例中,应答数据包可包括包头及载荷部,该包头可包括但不限于第二电子设备对应的蓝牙地址、第一电子设备的蓝牙地址、协议标识等信息,该协议标识可用于指示应答数据包对应的通信协议,该通信协议可以是公有通信协议,其可以为标准组织采纳或在业界推广,也可以是私有通信协议,从而在生产方自己生产的设备及系统间使用,经许可后其他厂商也可使用。应答数据包的载荷部可用于承载数据单元,可选地,应答数据包的载荷部可包括一个或多个数据单元。
在一些实施例中,第二电子设备可将各个属性数据对应的数据单元转化为字节流,并根据该字节流生成至少一个应答数据包,应答数据写的载荷部用于承载该字节流。生成的各个应答数据包的载荷部可用于承载字节流中的字节,例如,第一个数据单元的长度字段转化为字节07,类型字段转化为字节01,值字段转化为字节01 00 09 00 01 18;第二个数据单元的长度字段转化为字节08,类型字段转化为字节04,值字段转化为字节02 0003 00 2005 2a……,则转化得到的字节流可为:07 01 01 00 09 00 01 18 08 04 02 0003 00 20 052a……。可选地,还可在第一个数据单元之前添加应答标识,该应答标识可用于指示该字节流用于回复数据获取请求,比如,字节流的第一个字节可为0b,表示该字节流用于回复数据获取请求,第一个字节之后为数据单元转化的字节。
作为一种实施方式,可设置有应答数据包对应的最大载荷量,该最大载荷量指的是应答数据包的载荷部能够承载的最大数据量,最大载荷量可以是根据实际需求设置的值,也可以是通信协议中规定的值。第二电子设备可按照最大载荷量对转化得到的字节流进行划分,得到一个或多个字节部分。在存在多个字节部分的情况下,在最后一个字节部分之前的字节部分可包含最大载荷量的字节。每个字节部分可对应一个应答数据包,第二电子设备可生成与划分得到的字节部分一一对应的应答数据包,应答数据包的载荷部可承载对应的字节部分。第二电子设备按照最大载荷量对字节流进行划分,并生成相应的应答数据包,可使得各个应答数据包的载荷部承载允许的最多的字节,减少生成的应答数据包数量,从而减少传输次数,节省传输时间。而且,第一电子设备根据接收到的应答数据包的载荷部的数据量,即可判断是否完成数据传输,更为方便快捷。
作为另一种实施方式,第二电子设备也可根据数据单元对字节流进行划分,划分得到的每个字节部分可包含完整的一个或多个数据单元对应的字节,可生成与划分得到的字节部分一一对应的应答数据包,即每个应答数据包的载荷部承载的字节可被转化为一个或多个数据单元,并根据该数据单元可得到一个或多个完整的属性数据。由于每个应答数据包的载荷部承载的是完整的数据单元对应的字节,第一电子设备对接收的应答数据包进行解析时,即可得到完整的一个或多个属性数据,不需要关注应答数据包的传递顺序,也不需要等待所有应答数据包完成传输后再进行解析,提高了第一电子设备获取属性数据集合的准确性及速度。
可选地,划分得到的每个字节部分包含的字节所对应的数据单元的数量,可为最大载荷量内允许的最大数量,例如,最大载荷量为20,第一个数据单元转化为8个字节,第二个数据单元转化为9个字节,第三个数据单元转化为7个字节,则划分得到的第一个字节部分,包含第一个数据单元及第二个数据单元对应的字节,第三个数据单元对应的字节被划分到第二个字节部分。可在规定的应答数据包的载荷部能够承载的最大数据量的范围内,让应答数据包的载荷部尽可能多地承载完整数据单元对应的字节,既可以保证第一电子设备解析每个应答数据包都可得到准确的属性数据,又尽可能地减少传递的应答数据包数量,优化了整体BLE连接的速度。
步骤504,接收第二电子设备发送的至少一个应答数据包。
步骤506,按照目标格式对接收的各个应答数据包进行解析,以得到属性数据集合包含的一个或多个属性数据。
第一电子设备可对接收的各个应答数据包进行解析,以得到各个应答数据包携带的数据单元,并按照目标格式对数据单元进行解析,得到各个数据单元对应的属性数据。在一些实施例中,目标格式可包括TLV格式,第一电子设备可对接收的各个应答数据包进行解析,得到各个应答数据包携带的数据单元,并按照TLV格式,从数据单元的值字段获取属性数据。
作为一种实施方式,第一电子设备可在接收到第二电子设备发送的所有应答数据包后,对接收的各个应答数据包进行解析,得到各个应答数据包的载荷部承载的字节,根据各个应答数据包的载荷部承载的字节组成字节流,并将字节流还原成与属性数据集合包含的各个属性数据一一对应的数据单元,再按照目标格式对数据单元进行解析,得到各个数据单元对应的属性数据。
作为另一种实施方式,应答数据包的载荷部承载的是完整的数据单元对应的字节,第一电子设备可在接收到应答数据包后,对接收到的应答数据包进行解析,得到该应答数据包的载荷部承载的字节,并将解析得到的字节还原成数据单元,再按照目标格式对数据单元进行解析,得到各个数据单元对应的属性数据。
在本申请实施例中,第二电子设备可按照目标格式对属性数据集合包含的各个属性数据进行封装,以得到各个属性数据对应的数据单元,再根据各个属性数据对应的数据单元生成至少一个应答数据包,能够将属性数据集合序列化成字节流进行统一传递,可以减少大量的request-response空包交换的时间,从而优化了整体建立BLE连接的时间。而且,按照目标格式将属性数据封装成数据单元,可以保证属性数据传输的准确性。
如图7所示,在另一个实施例中,提供一种数据交互方法,可应用于上述的第一电子设备,该方法可包括以下步骤:
步骤702,向第二电子设备发送数据读取请求;数据读取请求用于触发第二电子设备按照目标格式分别对各个属性数据进行封装,以得到各个属性数据对应的数据单元,并根据各个属性数据对应的数据单元生成至少一个应答数据包。
步骤702的描述可参考上述各实施例中的相关描述,在此不再重复赘述。
在一些实施例中,可预先定义目标接口,该目标接口可以是采用本申请实施例提供的数据交互方法进行属性数据集合同步的接口,可选地,目标接口可根据实际需求进行设置,例如可为gatt fast connect api。在第一电子设备向第二电子设备发送数据读取请求,可对目标接口的调用进行监听,若检测到应用程序调用定义的目标接口时,则可记录调用目标接口的标志,在与第二电子设备建立GATT连接之后,可根据该记录的标志,向第二电子设备发送数据读取请求。
若第一电子设备检测到应用程序调用定义的目标接口,则说明该应用程序采用本申请实施例提供的数据交互方法获取第二电子设备配置的属性数据集合,可记录调用目标接口的标志,该调用目标接口的标志可根据实际需求进行设置,比如为1,或者为true等,但不限于此。在第一电子设备与第二电子设备建立GATT连接后,可判断是否记录有调用目标接口的标志,若存在调用目标接口的标志,则向第二电子设备发送数据读取请求。若不存在调用目标接口的标志,则在第一电子设备与第二电子设备建立GATT连接后,可进行通信协议中规定的GATT Search流程,基于属性类型搜索获取第二电子设备配置的属性数据集合。在本申请实施例中,定义了可供调用的目标接口,通过调用目标接口即可触发采用本申请实施例提供的数据交互方法获取属性数据集合,方便了本申请实施例提供的数据交互方法在各电子设备中的实施,且与相关技术中的通信协议兼容。
在一些实施例中,在第一电子设备向第二电子设备发送数据读取请求后,若第二电子设备根据数据读取请求携带的目标句柄,无法确定出该数据读取请求用于获取配置的数据读取请求,或者无法对数据读取请求进行解析等,即说明第二电子设备不支持本申请实施例提供的数据交互方法,则可向第一电子设备返回错误应答,或者直接不响应该数据读取请求(即不回复任何消息)。
若第一电子设备接收到第二电子设备返回的错误应答或者在预设时长内未接收到第二电子设备返回的消息,则可进行通信协议中规定的GATT Search流程,基于属性类型搜索获取第二电子设备配置的属性数据集合,从而保证第一电子设备可获取到属性数据集合,以成功建立BLE连接。
步骤704,接收第二电子设备发送的当前应答数据包。
步骤706,根据当前应答数据包判断是否完成数据传输,若是,则执行步骤708,若否,则执行步骤710。
在一些实施例中,第二电子设备生成的各个应答数据包可缓存到发送队列中,第二电子设备可按照发送队列逐一向第一电子设备发送生成的应答数据包。第二电子设备向第一电子设备发送当前应答数据包,该当前应答数据包可以是发送队列中排列在第一位的应答数据包。第一电子设备接收第二电子设备发送的当前应答数据包后,可根据该当前应答数据包判断是否完成数据传输,其中,完成数据传输可指的是当前应答数据包为最后一个应答数据包,第二电子设备已传输属性数据集合的所有属性数据。若确定还未完成数据传输,则第一电子设备可继续接收下一应答数据。
在一些实施例中,第一电子设备可采用以下几种方式中的任一种判断是否完成数据传输:
(1)第一电子设备可判断当前应答数据包是否为满载的应答数据包,若当前应答数据包为满载的应答数据包,则确定还未完成数据传输,若当前应答数据包不为满载的应答数据包,则确定完成数据传输。
其中,满载的应答数据包可指的是应答数据包的载荷部的数据长度大于或等于长度阈值,可选地,该长度阈值可以是上述的最大载荷量,也可以是根据最大载荷量设置的阈值,例如最大载荷量的90%、最大载荷量的96%等,但不限于此。
第一电子设备在接收到当前应答数据包后,可对当前应答数据包进行解析,以确定当前应答数据包的载荷部的数据长度,可判断该数据长度是否大于或等于长度阈值,若当前应答数据包的载荷部的数据长度大于或等于长度阈值,说明当前应答数据包的载荷部携带较多的数据,则可确定当前应答数据包为满载的应答数据包。若当前应答数据包为满载的应答数据包,说明大概率还存在下一应答数据包,则可确定还未完成数据传输。
若当前应答数据包的载荷部的数据长度小于长度阈值,说明当前应答数据包的载荷部携带较少的的数据,则可确定当前应答数据包不为满载的应答数据包,该当前应答数据包为最后一个应答数据包,则可确定完成数据传输。
在本申请实施例中,第一电子设备可根据接收的应答数据包的载荷部携带的数据量,判断是否完成数据传输,可以保证第一电子设备准确接收到所有的应答数据包,保证了获取的属性数据集合的准确性。
(2)第一电子设备可判断当前应答数据包是否携带第一传输标识,若当前应答数据包中携带第一传输标识,则可确定还未完成数据传输,若当前应答数据包中携带第二传输标识,则可确定完成数据传输。
其中,第一传输标识用于指示还存在下一应答数据包,第二传输标识用于指示当前应答数据包为最后一个应答数据包。第一传输标识及第二传输标识可根据实际需求进行设置,可由数字、字母及符号等中的一种或多种组成,例如,第一传输标识为0,第二传输标识为1,或者第一传输标识为mid,第二传输标识为end等,但不限于此。
在一些实施例中,第二电子设备在生成应答数据包时,可在应答数据包的包头的标识位中添加传输标识,若应答数据包不为最后一个应答数据包,则可添加第一传输标识,若应答数据包为最后一个应答数据包,则可添加第二传输标识。第一电子设备接收到当前应答数据包后,可对当前应答数据包进行解析,得到应答数据包的包头的标识位携带的传输标识。若该标识位携带第一传输标识,则可确定还未完成数据传输,若该标识位携带第二传输标识,则可确定还未完成数据传输。
在本申请实施例中,第一电子设备可根据接收的应答数据包携带的传输标识,判断是否完成数据传输,可以保证第一电子设备准确接收到所有的应答数据包,保证了获取的属性数据集合的准确性。
步骤708,按照目标格式对接收的各个应答数据包进行解析,以得到属性数据集合包含的一个或多个属性数据。
步骤708的描述可参考上述各实施例中的相关描述,在此不再重复赘述。
步骤710,向第二电子设备发送继续读取请求,以使第二电子设备根据继续读取请求向第一电子设备发送下一应答数据包,并继续执行步骤704。
若第一电子设备在根据当前应答数据包确定还未完成数据传输的情况下,可向第二电子设备发送继续读取请求。第二电子设备接收到该继续读取请求,可将下一应答数据包作为新的当前应答数据包,发送给第一电子设备。
作为一种具体实施方式,继续读取请求可包括ATT_READ_BLOB_REQ命令,ATT_READ_BLOB_REQ可为ATT中规定的用于继续读取数据的命令,可选地,ATT_READ_BLOB_REQ也可携带上述的目标句柄,用于请求继续读取属性数据集合的属性数据。
示例性地,图8A为一个实施例中GATT服务器与GATT客户端同步GATT数据库的示意图。如图8A所示,GATT客户端(如上述的第一电子设备)与GATT服务端(如上述的第二电子设备)可建立GATT连接,GATT客户端可向GATT服务端发送“ATT_READ_REQ”PDU,GATT服务端接收到“ATT_READ_REQ”PDU后,可将GATT Database中的属性数据转化为字节流,以应答数据包“ATT_READ_RSP”PDU发送给GATT客户端。GATT客户端根据接收到的应答数据包判断是否完成数据传输,若未完成数据传输,则向GATT服务端发送“ATT_READ_BLOB_REQ”PDU继续读取应答数据包,GATT服务端根据GATT客户端发送的“ATT_READ_BLOB_REQ”PDU,将下一应答数据包“ATT_READ_BLOB_RSP”PDU发送给GATT客户端,直至完成数据传输。GATT客户端可根据接收到的各个应答数据包读取到完整的字节流,并将该字节流还原成GATT Database。
示例性地,图8B为另一个实施例中GATT服务器与GATT客户端同步GATT数据库的示意图。如图8B所示,GATT客户端(如上述的第一电子设备)与GATT服务端(如上述的第二电子设备)可建立GATT连接,GATT客户端可向GATT服务端发送“ATT_READ_REQ”PDU,GATT服务端接收到“ATT_READ_REQ”PDU后,若不支持本申请实施例提供的数据交互方法,如识别到“ATT_READ_REQ”PDU携带目标句柄后,不支持GATT Database的同步,则可向GATT客户端返回错误应答“ATT_ERROR_RSP”PDU,表示出错。GATT客户端接收到GATT服务端发送的“ATT_ERROR_RSP”PDU后,可进行通信协议中规定的GATT Search流程,基于属性类型搜索获取到GATT服务端的GATT Database。
在本申请实施例中,第一电子设备可判断是否完成数据传输,在未完成数据传输的情况下,第一电子设备向第二电子设备发送继续读取请求,以继续获取下一应答数据包,可以保证第一电子设备获取到完整的、准确的属性数据集合,提高了建立BLE连接的稳定性。
如图9所示,在另一个实施例中,提供一种数据交互方法,可应用于上述的GATT客户端(如上述的第一电子设备),该方法可包括以下步骤:
步骤902,检测到第三方应用程序调用gatt fast connect api。
步骤904,记录快连FLAG。
步骤906,与GATT服务端之间的GATT连接完成。
步骤908,判断FLAG是否为TRUE,若是,则执行步骤910,若否,则执行步骤924。其中,FLAG为TRUE,表示第三方应用程序调用gatt fast connect api。
步骤910,向GATT服务端发送ATT_READ_REQ,并启动应答定时器。ATT_READ_REQ携带目标句柄,如0xFFFF等;定时器对应的预设时长可根据实际需求进行设置,如100毫秒、150毫秒等,但不限于此。
步骤912,判断定时器是否超时,若是,则执行步骤924,若否,则执行步骤914。
步骤914,判断是否接收到GATT服务端发送的错误应答,若是,则执行步骤924,若否,则执行步骤916。
步骤916,接收GATT服务端发送的ATT_READ_RSP/ATT_READ_BLOB_RSP。
步骤918,判断ATT_READ_RSP/ATT_READ_BLOB_RSP的载荷部的数据长度是否小于512,若是,则执行步骤922,若否,则执行步骤920。
步骤920,向GATT服务端发送ATT_READ_BLOB_REQ,并继续执行步骤916。
步骤922,按照TLV格式解析数据,并填充GATT服务端对应的gatt database。
步骤924,进行原生gatt search流程。
在本申请实施例中,GATT客户端通过向GATT服务端发送携带目标句柄的ATT_READ_REQ,可以触发GATT服务端将gatt database中的属性数据序列化成字节流并进行统一传递,可以减少大量的request-response空包交换的时间,从而优化了整体建立BLE连接的时间。
如图10所示,在一个实施例中,提供另一种数据交互方法,可应用于上述的第二电子设备,该方法可包括以下步骤:
步骤1010,接收第一电子设备发送的数据读取请求。
步骤1020,响应于数据读取请求,根据配置的属性数据集合生成至少一个应答数据包。属性数据集合包括一个或多个属性数据,该至少一个应答数据包携带该一个或多个属性数据。
步骤1030,向第一电子设备发送至少一个应答数据包,以使所一电子设备根据至少一个应答数据包,确定属性数据集合。
在一个实施例中,数据读取请求包括目标句柄,目标句柄用于指示第二电子设备配置的属性数据集合;步骤1020,可包括:确定数据读取请求携带目标句柄;根据配置的属性数据集合生成至少一个应答数据包。
在一个实施例中,步骤根据配置的属性数据集合生成至少一个应答数据包,包括:按照目标格式分别对各个属性数据进行封装,以得到各个属性数据对应的数据单元,并根据各个属性数据对应的数据单元生成至少一个应答数据包。
在一个实施例中,目标格式包括TLV格式,数据单元的类型字段用于指示封装的属性数据对应的属性类型,数据单元的值字段用于承载封装的属性数据,数据单元的长度字段用于指示数据单元的类型字段及值字段的数据长度。
在一个实施例中,步骤根据各个属性数据对应的数据单元生成至少一个应答数据包,包括:将各个属性数据对应的数据单元转化为字节流,并根据字节流生成至少一个应答数据包,应答数据包的载荷部用于承载字节流。
在一个实施例中,步骤1030,包括:向第一电子设备发送当前应答数据包;若接收到第一电子设备发送的继续读取请求,则根据继续读取请求向第一电子设备发送下一应答数据包;其中,继续读取请求为第一电子设备在根据当前应答数据包确定还未完成数据传输的情况下发送的。
在一个实施例中,在步骤1010之前,该方法还包括:与第一电子设备建立GATT连接。
需要说明的是,本申请实施例提供的应用于第二电子设备的数据交互方法,可参考上述各实施例中提供的应用于第一电子设备的数据交互方法的相关描述,在此不再重复赘述。
在本申请实施例中,第二电子设备可响应于第一电子设备发送的数据读取请求,根据配置的属性数据集合生成应答数据包并进行统一传递,能够有效减少第一电子设备获取第二电子设备配置的属性数据集合的时间。相较于相关技术中基于GATT Search的传输方案,可以减少大量的request-response空包交换的时间,从而优化了整体建立BLE连接的时间。
如图11所示,在一个实施例中,提供一种数据交互装置1100,可应用于上述的第一电子设备,数据交互装置1100可包括发送模块1110、接收模块1120及数据确定模块1130。
发送模块1110,用于向第二电子设备发送数据读取请求;数据读取请求用于触发第二电子设备根据配置的属性数据集合生成至少一个应答数据包,属性数据集合包括一个或多个属性数据,该至少一个应答数据包携带该一个或多个属性数据。
接收模块1120,用于接收第二电子设备发送的至少一个应答数据包。
数据确定模块1130,用于根据至少一个应答数据包,确定属性数据集合。
在一个实施例中,数据读取请求包括目标句柄,目标句柄用于指示第二电子设备配置的属性数据集合。
在一个实施例中,数据交互装置1100还可包括连接模块。
连接模块,用于与第二电子设备建立GATT连接。
在本申请实施例中,第一电子设备通过向第二电子设备发送数据读取请求,可以触发第二电子设备根据配置的属性数据集合生成应答数据包并进行统一传递,能够有效减少第一电子设备获取第二电子设备配置的属性数据集合的时间。相较于相关技术中基于GATT Search的传输方案,可以减少大量的request-response空包交换的时间,从而优化了整体建立BLE连接的时间。
在一个实施例中,数据读取请求用于触发第二电子设备根据配置的属性数据集合生成至少一个应答数据包,包括:数据读取请求用于触发第二电子设备按照目标格式分别对各个属性数据进行封装,以得到各个属性数据对应的数据单元,并根据各个属性数据对应的数据单元生成至少一个应答数据包。
在一个实施例中,目标格式包括TLV格式,数据单元的类型字段用于指示封装的属性数据对应的属性类型,数据单元的值字段用于承载封装的属性数据,数据单元的长度字段用于指示数据单元的类型字段及值字段的数据长度。
在一个实施例中,数据确定模块1130,还用于按照目标格式对接收的各个应答数据包进行解析,以得到属性数据集合包含的一个或多个属性数据。
在本申请实施例中,第二电子设备可按照目标格式对属性数据集合包含的各个属性数据进行封装,以得到各个属性数据对应的数据单元,再根据各个属性数据对应的数据单元生成至少一个应答数据包,能够将属性数据集合序列化成字节流进行统一传递,可以减少大量的request-response空包交换的时间,从而优化了整体建立BLE连接的时间。而且,按照目标格式将属性数据封装成数据单元,可以保证属性数据传输的准确性。
在一个实施例中,数据交互装置1100还可包括调用模块。
调用模块,用于在检测到应用程序调用定义的目标接口时,记录调用目标接口的标志。
发送模块1110,还用于根据该标志,向第二电子设备发送数据读取请求。
在一个实施例中,接收模块1120,还用于接收第二电子设备发送的当前应答数据包。
发送模块1110,还用于若根据当前应答数据包确定还未完成数据传输,则向第二电子设备发送继续读取请求,以使第二电子设备根据继续读取请求向第一电子设备发送下一应答数据包。
在一个实施例中,数据交互装置1100还可包括传输完成确定模块。
传输完成确定模块,用于若当前应答数据包为满载的应答数据包,则确定还未完成数据传输;若当前应答数据包不为满载的应答数据包,则确定完成数据传输;满载的应答数据包指的是应答数据包的载荷部的数据长度大于或等于长度阈值;或者,
传输完成确定模块,用于若当前应答数据包中携带第一传输标识,则确定还未完成数据传输;若当前应答数据包中携带第二传输标识,则确定完成数据传输;第一传输标识用于指示还存在下一应答数据包;第二传输标识用于指示当前应答数据包为最后一个应答数据包。
在本申请实施例中,第一电子设备可根据接收的应答数据包携带的传输标识,判断是否完成数据传输,可以保证第一电子设备准确接收到所有的应答数据包,保证了获取的属性数据集合的准确性。
如图12所示,在一个实施例中,提供另一种数据交互装置1200,可应用于上述的第二电子设备,该数据交互装置1200可包括接收模块1210、生成模块1220及发送模块1230。
接收模块1210,用于接收第一电子设备发送的数据读取请求。
生成模块1220,用于响应于数据读取请求,根据配置的属性数据集合生成至少一个应答数据包;属性数据集合包括一个或多个属性数据,该至少一个应答数据包携带该一个或多个属性数据。
发送模块1230,用于向第一电子设备发送至少一个应答数据包,以使第一电子设备根据至少一个应答数据包,确定属性数据集合。
在一个实施例中,数据读取请求包括目标句柄,目标句柄用于指示第二电子设备配置的属性数据集合;生成模块1220,还用于确定数据读取请求携带目标句柄;根据配置的属性数据集合生成至少一个应答数据包。
在一个实施例中,生成模块1220,还用于按照目标格式分别对各个属性数据进行封装,以得到各个属性数据对应的数据单元,并根据各个属性数据对应的数据单元生成至少一个应答数据包。
在一个实施例中,目标格式包括TLV格式,数据单元的类型字段用于指示封装的属性数据对应的属性类型,数据单元的值字段用于承载封装的属性数据,数据单元的长度字段用于指示数据单元的类型字段及值字段的数据长度。
在一个实施例中,生成模块1220,还用于将各个属性数据对应的数据单元转化为字节流,并根据字节流生成至少一个应答数据包,应答数据包的载荷部用于承载字节流。
在一个实施例中,发送模块1230,还用于向第一电子设备发送当前应答数据包;以及用于若接收模块1210接收到第一电子设备发送的继续读取请求,则根据继续读取请求向第一电子设备发送下一应答数据包;其中,继续读取请求为第一电子设备在根据当前应答数据包确定还未完成数据传输的情况下发送的。
在一个实施例中,数据交互装置1200还包括连接模块。
连接模块,用于与第一电子设备建立GATT连接。
在本申请实施例中,第二电子设备可响应于第一电子设备发送的数据读取请求,根据配置的属性数据集合生成应答数据包并进行统一传递,能够有效减少第一电子设备获取第二电子设备配置的属性数据集合的时间。相较于相关技术中基于GATT Search的传输方案,可以减少大量的request-response空包交换的时间,从而优化了整体建立BLE连接的时间。
图13为一个实施例中电子设备的结构框图。如图13所示,电子设备1300可以包括一个或多个如下部件:处理器1310、与处理器1310耦合的存储器1320,其中存储器1320可存储有一个或多个计算机程序,一个或多个计算机程序可以被配置为由一个或多个处理器1310执行时实现如上述各实施例描述的应用于第一电子设备的数据交互方法。
处理器1310可以包括一个或者多个处理核。处理器1310利用各种接口和线路连接整个电子设备1300内的各个部分,通过运行或执行存储在存储器1320内的指令、程序、代码集或指令集,以及调用存储在存储器1320内的数据,执行电子设备1300的各种功能和处理数据。可选地,处理器1310可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1310可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1310中,单独通过一块通信芯片进行实现。
存储器1320可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。存储器1320可用于存储指令、程序、代码、代码集或指令集。存储器1320可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等。存储数据区还可以存储电子设备1300在使用中所创建的数据等。
可以理解地,电子设备1300可包括比上述结构框图中更多或更少的结构元件,例如,包括电源模块、物理按键、WiFi(Wireless Fidelity,无线保真)模块、扬声器、蓝牙模块、传感器等,还可在此不进行限定。
本申请实施例还公开一种电子设备,包括存储器及处理器,该存储器中存储有计算机程序,该计算机程序被处理器执行时,使得该处理器实现如上述各实施例描述的应用于第二电子设备的数据交互方法。
本申请实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序被处理器执行时实现如上述各实施例描述的应用于第一电子设备的数据交互方法。
本申请实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序被处理器执行时实现如上述各实施例描述的应用于第二电子设备的数据交互方法。
本申请实施例公开一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可被处理器执行时实现如上述各实施例描述的应用于第一电子设备的数据交互方法。
本申请实施例公开一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可被处理器执行时实现如上述各实施例描述的应用于第二电子设备的数据交互方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、ROM等。
如此处所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。合适的非易失性存储器可包括ROM、可编程ROM(Programmable ROM,PROM)、可擦除PROM(Erasable PROM,EPROM)、电可擦除PROM(Electrically ErasablePROM,EEPROM)或闪存。易失性存储器可包括随机存取存储器(random access memory,RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM可为多种形式,诸如静态RAM(Static RAM,SRAM)、动态RAM(Dynamic Random Access Memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、双倍数据率SDRAM(Double Data Rate SDRAM,DDR SDRAM)、增强型SDRAM(Enhanced Synchronous DRAM,ESDRAM)、同步链路DRAM(Synchlink DRAM,SLDRAM)、存储器总线直接RAM(Rambus DRAM,RDRAM)及直接存储器总线动态RAM(DirectRambus DRAM,DRDRAM)。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定特征、结构或特性可以以任意适合的方式结合在一个或多个实施例中。本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可位于一个地方,或者也可以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上对本申请实施例公开的一种数据交互方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (20)
1.一种数据交互方法,其特征在于,应用于第一电子设备,所述方法包括:
向第二电子设备发送数据读取请求;所述数据读取请求用于触发所述第二电子设备根据配置的属性数据集合生成至少一个应答数据包,所述属性数据集合包括一个或多个属性数据,所述至少一个应答数据包携带所述一个或多个属性数据;
接收所述第二电子设备发送的所述至少一个应答数据包;
根据所述至少一个应答数据包,确定所述属性数据集合。
2.根据权利要求1所述的方法,其特征在于,所述数据读取请求包括目标句柄,所述目标句柄用于指示所述第二电子设备配置的属性数据集合。
3.根据权利要求1所述的方法,其特征在于,所述数据读取请求用于触发所述第二电子设备根据配置的属性数据集合生成至少一个应答数据包,包括:
所述数据读取请求用于触发所述第二电子设备按照目标格式分别对各个所述属性数据进行封装,以得到各个所述属性数据对应的数据单元,并根据各个所述属性数据对应的数据单元生成至少一个应答数据包。
4.根据权利要求3所述的方法,其特征在于,所述目标格式包括TLV格式,所述数据单元的类型字段用于指示封装的属性数据对应的属性类型,所述数据单元的值字段用于承载封装的属性数据,所述数据单元的长度字段用于指示数据单元的类型字段及值字段的数据长度。
5.根据权利要求3所述的方法,其特征在于,所述根据所述至少一个应答数据包,确定所述属性数据集合,包括:
按照所述目标格式对接收的各个所述应答数据包进行解析,以得到所述属性数据集合包含的所述一个或多个属性数据。
6.根据权利要求1~5任一项所述的方法,其特征在于,所述接收所述第二电子设备发送的所述至少一个应答数据包,包括:
接收所述第二电子设备发送的当前应答数据包;
若根据所述当前应答数据包确定还未完成数据传输,则向所述第二电子设备发送继续读取请求,以使所述第二电子设备根据所述继续读取请求向所述第一电子设备发送下一应答数据包。
7.根据权利要求6所述的方法,其特征在于,在所述接收所述第二电子设备发送的当前应答数据包之后,所述方法还包括:
若所述当前应答数据包为满载的应答数据包,则确定还未完成数据传输;所述满载的应答数据包指的是应答数据包的载荷部的数据长度大于或等于长度阈值;
若所述当前应答数据包不为所述满载的应答数据包,则确定完成数据传输;
或者,
若所述当前应答数据包中携带第一传输标识,则确定还未完成数据传输;所述第一传输标识用于指示还存在下一应答数据包;
若所述当前应答数据包中携带第二传输标识,则确定完成数据传输;所述第二传输标识用于指示所述当前应答数据包为最后一个应答数据包。
8.根据权利要求1~5任一项所述的方法,其特征在于,在所述向第二电子设备发送数据读取请求之前,所述方法还包括:
与第二电子设备建立通用属性配置文件GATT连接。
9.根据权利要求1~5任一项所述的方法,其特征在于,在所述向第二电子设备发送数据读取请求之前,所述方法还包括:
在检测到应用程序调用定义的目标接口时,记录调用所述目标接口的标志;
所述向第二电子设备发送数据读取请求,包括:
根据所述标志,向第二电子设备发送数据读取请求。
10.一种数据交互方法,其特征在于,应用于第二电子设备,所述方法包括:
接收第一电子设备发送的数据读取请求;
响应于所述数据读取请求,根据配置的属性数据集合生成至少一个应答数据包;所述属性数据集合包括一个或多个属性数据,所述至少一个应答数据包携带所述一个或多个属性数据;
向所述第一电子设备发送所述至少一个应答数据包,以使所述第一电子设备根据所述至少一个应答数据包,确定所述属性数据集合。
11.根据权利要求10所述的方法,其特征在于,所述数据读取请求包括目标句柄,所述目标句柄用于指示所述第二电子设备配置的属性数据集合;
所述响应于所述数据读取请求,根据配置的属性数据集合生成至少一个应答数据包,包括:
确定所述数据读取请求携带所述目标句柄;
根据配置的属性数据集合生成至少一个应答数据包。
12.根据权利要求10所述的方法,其特征在于,所述根据配置的属性数据集合生成至少一个应答数据包,包括:
按照目标格式分别对各个所述属性数据进行封装,以得到各个所述属性数据对应的数据单元,并根据各个所述属性数据对应的数据单元生成至少一个应答数据包。
13.根据权利要求12所述的方法,其特征在于,所述目标格式包括TLV格式,所述数据单元的类型字段用于指示封装的属性数据对应的属性类型,所述数据单元的值字段用于承载封装的属性数据,所述数据单元的长度字段用于指示数据单元的类型字段及值字段的数据长度。
14.根据权利要求12所述的方法,其特征在于,所述根据各个所述属性数据对应的数据单元生成至少一个应答数据包,包括:
将各个所述属性数据对应的数据单元转化为字节流,并根据所述字节流生成至少一个应答数据包,所述应答数据包的载荷部用于承载所述字节流。
15.根据权利要求10~14任一项所述的方法,其特征在于,所述向所述第一电子设备发送所述至少一个应答数据包,包括:
向所述第一电子设备发送当前应答数据包;
若接收到所述第一电子设备发送的继续读取请求,则根据所述继续读取请求向所述第一电子设备发送下一应答数据包;其中,所述继续读取请求为所述第一电子设备在根据所述当前应答数据包确定还未完成数据传输的情况下发送的。
16.根据权利要求10~14任一项所述的方法,其特征在于,在所述接收第一电子设备发送的数据读取请求之前,所述方法还包括:
与第一电子设备建立GATT连接。
17.一种数据交互装置,其特征在于,应用于第一电子设备,所述装置包括:
发送模块,用于向第二电子设备发送数据读取请求;所述数据读取请求用于触发所述第二电子设备根据配置的属性数据集合生成至少一个应答数据包,所述属性数据集合包括一个或多个属性数据,所述至少一个应答数据包携带所述一个或多个属性数据;
接收模块,用于接收所述第二电子设备发送的所述至少一个应答数据包;
数据确定模块,用于根据所述至少一个应答数据包,确定所述属性数据集合。
18.一种数据交互装置,其特征在于,应用于第二电子设备,所述装置包括:
接收模块,用于接收第一电子设备发送的数据读取请求;
生成模块,用于响应于所述数据读取请求,根据配置的属性数据集合生成至少一个应答数据包;所述属性数据集合包括一个或多个属性数据,所述至少一个应答数据包携带所述一个或多个属性数据;
发送模块,用于向所述第一电子设备发送所述至少一个应答数据包,以使所述第一电子设备根据所述至少一个应答数据包,确定所述属性数据集合。
19.一种电子设备,其特征在于,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现如权利要求1~9或10~16任一项所述的方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~9或10~16任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310809027.4A CN116723491A (zh) | 2023-07-03 | 2023-07-03 | 数据交互方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310809027.4A CN116723491A (zh) | 2023-07-03 | 2023-07-03 | 数据交互方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116723491A true CN116723491A (zh) | 2023-09-08 |
Family
ID=87875122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310809027.4A Pending CN116723491A (zh) | 2023-07-03 | 2023-07-03 | 数据交互方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116723491A (zh) |
-
2023
- 2023-07-03 CN CN202310809027.4A patent/CN116723491A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5823077B2 (ja) | 効率のよいサービス発見のための方法、装置、およびコンピュータプログラム | |
US8996065B2 (en) | Method for automatically transferring an application in a mobile communication terminal of telecommunication networks | |
US11310727B2 (en) | Methods, devices and media for obtaining and for providing access information of wireless access points | |
KR20110014619A (ko) | 무선 액세스 포인트에 의한 복수의 서비스 네트워크에 대한 지원의 애드버타이즈 | |
US8984590B2 (en) | Enabling access to key lifetimes for wireless link setup | |
WO2013127108A1 (zh) | 存储短消息的方法及装置 | |
US20120278448A1 (en) | Method and System for Accessing Microblog, and Method and System for Sending Pictures on Microblog Website | |
CN110740481B (zh) | 基于服务质量的数据处理方法、设备和计算机存储介质 | |
WO2019085737A1 (zh) | 获取、提供无线接入点接入信息的方法、设备以及介质 | |
CN112686358A (zh) | 数据传输方法及nfc电子标签、终端设备、存储介质 | |
JP2018163077A (ja) | 通信装置、通信方法、及びプログラム | |
TW202021405A (zh) | 基於藍牙廣播進行數據傳輸的方法、裝置及藍牙設備 | |
WO2023015816A1 (zh) | eSIM设备配置系统、方法、装置及存储介质 | |
US20180192293A1 (en) | Fake Base Station Short Message Identification | |
CN103532920A (zh) | cookie更新方法以及cookie更新系统 | |
CN111722938A (zh) | At指令处理方法、装置、计算机设备和存储介质 | |
WO2023179712A1 (zh) | 一种支持感知的通信方法及装置、通信设备 | |
CN111770094A (zh) | 无线网络的接入控制方法及相关装置 | |
CN116723491A (zh) | 数据交互方法、装置、电子设备及存储介质 | |
US10285193B2 (en) | Wireless communication system and wireless apparatus | |
EP3852441A1 (en) | Information processing method, terminal device, and storage medium | |
US20200285781A1 (en) | Terminal and communication method | |
CN114830105A (zh) | 一种数据读取方法以及终端 | |
US20200367140A1 (en) | Access control method and device, computer readable medium and system | |
WO2017118192A1 (zh) | 一种数据传输间隔的确定方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |