CN117119421A - 数据传输方法、蓝牙设备及可读存储介质 - Google Patents

数据传输方法、蓝牙设备及可读存储介质 Download PDF

Info

Publication number
CN117119421A
CN117119421A CN202311056606.2A CN202311056606A CN117119421A CN 117119421 A CN117119421 A CN 117119421A CN 202311056606 A CN202311056606 A CN 202311056606A CN 117119421 A CN117119421 A CN 117119421A
Authority
CN
China
Prior art keywords
data
bluetooth device
frame
control frame
protocol
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
Application number
CN202311056606.2A
Other languages
English (en)
Inventor
成锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hubei Xingji Meizu Technology Co ltd
Original Assignee
Hubei Xingji Meizu Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hubei Xingji Meizu Technology Co ltd filed Critical Hubei Xingji Meizu Technology Co ltd
Priority to CN202311056606.2A priority Critical patent/CN117119421A/zh
Publication of CN117119421A publication Critical patent/CN117119421A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本公开提供了一种数据传输方法、蓝牙设备及计算机程序产品,应用于第一蓝牙设备的数据传输方法包括:与第二蓝牙设备建立低功耗蓝牙BLE连接;通过所述BLE连接依次发送控制帧和至少一个数据帧,所述控制帧用于指示所述第二蓝牙设备接收所述至少一个数据帧,且所述控制帧包括待传输数据中的部分数据,所述至少一个数据帧包括所述待传输数据中的其他部分数据。

Description

数据传输方法、蓝牙设备及可读存储介质
技术领域
本公开涉及通信技术领域,更具体地,涉及一种数据传输方法、蓝牙设备及计算机可读存储介质。
背景技术
蓝牙是一种短距的无线通讯技术,可实现蓝牙设备之间的数据交换。蓝牙4.0规范下的低功耗蓝牙BLE(Bluetooth Low Energy)是专门面向对成本和功耗有较高要求的无线方案。在现有技术中,使用BLE连接的蓝牙设备每次传输数据的数据长度不能超过最大传输单元(Maximum Transmission Unit,MTU),因此,对于需要传输数据长度大于该最大传输单元的数据包必须分包传输。
发明内容
根据本公开的第一方面,提供了一种数据传输方法,应用于第一蓝牙设备,包括:
与第二蓝牙设备建立低功耗蓝牙BLE连接;
通过所述BLE连接依次发送控制帧和至少一个数据帧,所述控制帧用于指示所述第二蓝牙设备本次数据传输包括几个数据帧,且所述控制帧包括待传输数据中的部分数据,所述至少一个数据帧包括所述待传输数据中的其他部分数据。
根据本公开的第二方面,提供了一种数据传输方法,应用于第二蓝牙设备,包括:
与第一蓝牙设备建立BLE连接;
通过所述BLE连接,接收所述第一蓝牙设备发送的控制帧,所述控制帧包括待传输数据中的部分数据;
根据所述控制帧,接收所述第一蓝牙设备发送的至少一个数据帧,所述至少一个数据帧包括所述待传输数据中的其他部分数据。
根据本公开的第三方面,提供了一种蓝牙设备,包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序用于控制所述处理器执行如本公开第一方面所述的方法,或者执行如本公开第二方面所述的方法。
根据本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如本公开第一方面所述的方法,或者,实现如本公开第二方面所述的方法。
附图说明
为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开一个实施例提供的数据传输系统的框图;
图2为本公开一个实施例提供的数据传输方法的流程图;
图3为本公开另一个实施例提供的数据传输方法的流程图;
图4为本公开一个实施例提供的数据传输流程的示意图;
图5为本公开一个实施例提供的数据传输流程的示意图;
图6为本公开一个实施例提供的数据传输流程的示意图;
图7为本公开一个实施例提供的蓝牙设备的框图;
图8为本公开另一个实施例提供的蓝牙设备的框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
蓝牙低能耗(Bluetooth Low Energy,或称Bluetooth LE、BLE,旧商标BluetoothSmart)也称低功耗蓝牙,是蓝牙技术联盟设计和销售的一种个人局域网技术,旨在用于医疗保健、运动健身、信标、安防、家庭娱乐等领域的新兴应用。
如图1所示,本公开实施例的数据传输系统1000包括至少两个蓝牙设备1100。
本公开实施例中的蓝牙设备110可以是各种具有BLE通信功能的手持设备、车载设备、可穿戴设备、计算设备等能够与其他蓝牙设备建立BLE连接的蓝牙设备,例如,手机、平板、头戴式设备、手环等。
图2为本公开一个实施例提供的数据传输方法的流程示意图,该方法的执行主体为第一蓝牙设备,如图2所示,该方法包括:
步骤201,与第二蓝牙设备建立低功耗蓝牙BLE连接。
在蓝牙技术中,通常首先提出通信请求的蓝牙设备称为主设备,被动进行通信的蓝牙设备称为从设备。其中,BLE连接建立的过程是,主设备的网关首先发起查询,获得可以建立数据连接的从设备的蓝牙地址。然后主设备的网关在应用层的驱动下向查询到的从设备发起建立数据连接的请求,当主设备的网关接收到从设备返回的应答时,主设备与从设备之间成功建立数据连接。
可以理解的是,执行本实施例方法的第一蓝牙设备可以是主设备,也可以是从设备。
在本实施例中,第一蓝牙设备与第二蓝牙设备建立BLE连接,可以是根据用户输入建立,也可以是在某些触发条件下自动建立,对此,本实施例不做限制。
步骤202,通过所述BLE连接依次发送控制帧和至少一个数据帧,所述控制帧用于指示所述第二蓝牙设备本次数据传输包括几个数据帧,且所述控制帧包括待传输数据中的部分数据,所述至少一个数据帧包括所述待传输数据中的其他部分数据。
在本实施例中,第一蓝牙设备可以是先向第二蓝牙设备发送控制帧,之后,再向第二蓝牙设备发送至少一个数据帧。根据传输数据的大小,数据帧可能是一个也可能是多个。
对应的,第二蓝牙设备可以是先接收控制帧,再根据控制帧接收数据帧。
可以理解的是,所述控制帧和所述至少一个数据帧是关联的,相关联的控制帧和至少一个数据帧共同实现待传输数据的传输。相关联的控制帧和至少一个数据帧的完整传输过程,即为一次数据传输。
在一些实施例中,第二蓝牙设备可以是对接收到的控制帧和数据帧中所包含的数据进行组装,得到第一蓝牙设备所传输的数据。
本实施例中,待传输数据是第一蓝牙设备需要发送给第二蓝牙设备的数据。待传输数据具有较大的数据长度,使得无法通过一条数据消息发送,因此待传输数据被分为多个部分。在用于指示第二蓝牙设备接收数据帧的控制帧中,携带待传输数据中的部分数据,在后续发送的数据帧中携带待传输数据中的其他部分数据。例如,待传输数据被分为5个部分,如P1、P2、……、P5,其中,P1由控制帧携带,P2至P5分别由4个数据帧携带。采用该方式,可以有效利用控制帧的传输资源,而且,还有较高机率减少数据帧的数量,进而有利于从整体上减少数据传输时间。
在一些实施例中,所述通过所述BLE连接依次发送控制帧和至少一个数据帧之前,还包括:对所述待传输数据进行分包处理,得到第一数据分包及至少一个第二数据分包;生成所述控制帧和所述至少一个数据帧,其中,所述控制帧包括所述第一数据分包,每个数据帧包括一个对应的第二数据分包。
在本实施例中,第一数据分包为控制帧所包含的待传输数据中的部分数据,每个第二数据分包为一个对应的数据帧所包含的待传输数据中的部分数据。
可以理解的是,对待传输数据进行分包处理,所得到第一数据分包和第二数据分包的字段长度可以相等,也可以不等;多个第二数据分包的字段长度可以相等,也可以不等,在此不做限定。
在本实施例中,生成的控制帧中包括第一数据分包,生成的数据帧和对待传输数据进行分包处理得到的第二数据分包一一对应,每个数据帧中包括对应的第二数据分包。
例如,对待传输数据进行分包处理,得到第一数据分包及N个第二数据分包,其中,N为正整数。那么,可以是生成N个数据帧,第i(其中,i为小于或者等于N的正整数)个数据帧中,可以是包括第i个第二数据分包。
在一些实施例中,对所述待传输数据进行分包处理,得到第一数据分包及至少一个第二数据分包,包括:基于所述控制帧中可用于携带所述待传输数据的字段的第一字段长度,以及所述数据帧中可用于携带所述待传输数据的字段的第二字段长度,对所述待传输数据进行分包得到所述第一数据分包和所述至少一个第二数据分包。
可以理解的是,基于第一字段长度和第二字段长度对待传输数据分包,使得得到的第一数据分包的字段长度可以是大于或者等于第一字段长度,第i个第二数据分包的字段长度可以是大于或者等于第i个数据帧的第二字段长度。
在本实施例中,基于第一字段长度和第二字段长度对待传输数据分包,可以有效利用控制帧和数据帧的传输资源,保证控制帧和数据帧能够携带待传输数据的全部数据。
在一些实施例中,可以是先基于第一字段长度确定第一数据分包;再确定第二数据分包。
具体的,可以是从待传输数据中的第一个字节开始,向后获取第一字段长度个字节的数据,作为第一数据分包。也可以是从待传输数据中的最后一个字节开始,向前获取第一字段长度个字节的数据,作为第一数据分包。
在一些实施例中,基于第一字段长度确定第一数据分包在待传输数据中的起始字节和终止字节,由起始字节至终止字节的所对应的所有数据,作为第一数据分包。
例如,在第一字段长度为L1的情况下,可以是将待传输数据中的第1至L1个字节所对应的所有数据,作为第一数据分包。
在获取第一数据分包后,可以确定剩余数据为待传输数据中除第一数据分包以外的数据,再从剩余数据中确定第二数据分包。
在一些实施例中,可以是基于第二字段长度,确定第二数据分包。
具体的,可以是从剩余数据中的第一个字节开始,向后获取第二字段长度个字节的数据,作为一个第二数据分包。也可以是从剩余数据中的最后一个字节开始,向前获取第二字段长度个字节的数据,作为一个第二数据分包。在得到一个第二数据分包的情况下,可以是确定将剩余数据中除该第二数据分包以外的数据,作为新的剩余数据,继续确定下一个第二数据分包。
在一些实施例中,第二数据分包可以具有唯一对应的分包编号,那么,可以是基于第一字段长度、第二字段长度、待传输数据的总长度(第三字段长度)和分包编号,确定对应第二数据分包。具体的,可以是确定对应的第二数据分包在待传输数据中的起始字节和终止字节,由起始字节至终止字节的所对应的所有数据,即为对应的第二数据分包。
例如,第一字段长度为L1,第二字段长度为L2,第三字段长度为L3,在第一数据分包为待传输数据的前L1个字节的数据的情况下,对于分包编号为i的第i个第二数据分包,其起始字节可以是start=1+(i-1)*L2+L1,终止字节可以是end=min(L3,i*L2+L1)。其中,min(L3,i*L2+L1)表示L3和i*L2+L1中的较小值。
在一些实施例中,所述控制帧的长度为最大传输单元MTU;所述至少一个数据帧中,最后一个数据帧的长度不大于所述MTU,除所述最后一个数据帧之外的其他数据帧的长度均为所述MTU。
可以理解的是,在数据帧的长度为所述MTU的情况下,该数据帧所携带数据的实际字段长度,可以是等于第二字段长度。在最后一个数据帧的长度不大于所述MTU的情况下,最后一个数据帧所携带数据的实际字段长度,可以是不大于第二字段长度。
在本实施例中,可以最大限度的利用数据帧中的字段来传输数据,可以有效利用数据帧的传输资源,还有较高几率减少数据帧的数量,进而有利于从整体上减少数据传输时间。
在一些实施例中,所述数据帧还包括:所述数据帧中的第二数据分包的分包编号。
在本实施例中,第二数据分包的分包编号,表示对应数据帧中所包含的第二数据分包在待传输数据中的排列顺序。不同数据帧中的分包编号不同。具体的,可以是较小的分包编号所对应的第二数据分包在待传输数据中的排列顺序较为靠前,较大的分包编号所对应的第二数据分包在待传输数据中的排列顺序较为靠后。
在得到N个第二数据分包的情况下,数据帧中的第二数据分包的分包编号可以是小于或者等于N的正整数。例如,在第i个数据帧中的分包编号可以为i。
在一些实施例中,第二蓝牙设备可以是根据数据帧中的分包编号对第二数据分包进行组装。例如,在第i个数据帧中的分包编号为i的情况下,第二蓝牙设备对数据帧中的第二数据分包进行组装,可以是按照分包编号由小到大的顺序对第二数据分包进行组装。在组装后的数据中,较小的分包编号所对应的第二数据分包的位置顺序较为靠前,较大的分包编号所对应的第二数据分包的位置顺序较为靠后。
在本实施例中,在数据帧中携带对应的第二数据分包的分包编号,可以便于第二蓝牙设备对数据帧所携带的第二数据分包进行组装。
在一些实施例中,所述控制帧包括分包数量信息,所述分包数量信息用于指示所述第二数据分包的数量。可以理解的是,分包数量信息也可以是待传输数据整体分包的数量,本申请实施例不做限制。
在本实施例中,控制帧可以通过分包数量来指示第二蓝牙设备本次传输包括几个数据帧。
在一些实施例中,第二数据分包的数量可以是在对待传输数据进行分包处理完成,得到第一数据分包和第二数据分包的情况下,根据实际得到的第二数据分包的数量确定控制帧中的分包数量信息。
在一些实施例中,可以是预先根据第一字段长度、第二字段长度和待传输数据的第三字段长度,确定能够得到的第二数据分包的数量,在根据得到的数量确定控制帧中的分包数量信息。
在本实施例中,可以是确定第三字段长度和第一字段长度的字段长度差值;将字段长度差值除以第二字段长度,得到商值和余数值;在余数值为零的情况下,确定第二数据分包的数量等于所述商值;在余数值不为零的情况下,确定第二数据分包的数量为大于该商值的最小整数,即第二数据分包的数量为该商值加一。其中,该商值可以是商的整数部分。
例如,第一字段长度为L1,第二字段长度为L2,第三字段长度为L3,得到的商值可以为(L3-L1)/L2,得到的余数值可以为Y=(L3-L1)%L2,如果Y=0,则第二数据分包的数量为N=(L3-L1)/L2;如果Y≠0,则第二数据分包的数量为N=1+(L3-L1)/L2。
在本实施例中,可以使得除最后一个数据帧之外的数据帧和控制帧的长度均为最大传输单元MTU,最后一个数据帧的长度不大于所述MTU。
在一种可能的实现方式中,第二蓝牙设备可以在全部数据帧传输结束后,再开始组装接收到的控制帧和数据帧中所携带的数据:
在一些实施例中,第二蓝牙设备可以是在接收到数据帧的数量等于分包数量信息所指示的数量的情况下,对本次接收到的控制帧和数据帧中所携带的数据进行组装。
在一些实施例中,第二蓝牙设备可以是在接收到分包编号与分包数量信息所指示的数量匹配的数据帧的情况下,对本次接收到的控制帧和数据帧中所携带的数据进行组装。
在一些实施例中,第二蓝牙设备在接收到控制帧后的第一设定时间内,接收到的数据帧的数量小于分包数量信息所指示的数量,且超过第二设定时间未接收到数据帧的情况下,确定本次数据传输过程出现丢包,可以是对本次接收到的控制帧和数据帧中所携带的数据进行组装,也可以是不对本次接收到的控制帧和数据帧中所携带的数据进行组装。
其中,第一设定时间和第二设定时间可以是预先根据应用场景或具体需求所分别设定的。例如,第一设定时间可以是1分钟,第二设定时间可以是5秒。
在一些实施例中,第二蓝牙设备可以是在确定本次数据传输过程出现丢包的情况下,通知第一蓝牙设备,以使第一蓝牙设备重新传输数据。
在一些实施例中,第二蓝牙设备可以是在确定本次数据传输过程出现丢包的情况下,不通知第一蓝牙设备,不做任何处理。
在另一种可能的实现方式中,第二蓝牙设备可以在接收到一定数量的数据帧后,并行执行接收数据帧和组装数据,直至全部数据帧传输结束。采用该实现方式可以减少第二蓝牙设备接收和组装数据所消耗的时间。
在本实施例中,在数据帧中携带分包数量信息,可以便于第二蓝牙设备确定数据传输过程中是否出现丢包,还可以便于第二蓝牙设备确定组装数据的时机。
在一些实施例中,所述控制帧包括用于表示分包协议的协议编号,所述分包协议包括第一分包协议或第二分包协议。
所述第一分包协议的协议编号用于指示所述第二蓝牙设备在接收到所述控制帧后,不向所述第一蓝牙设备返回响应。
所述第二分包协议的协议编号用于指示所述第二蓝牙设备在接收到所述控制帧后,向所述第一蓝牙设备返回响应。
本实施例中的分包协议,为用于按照约定的格式对待传输数据进行分包和组装的协议。
可以理解的是,在控制帧中包括用于表示第一分包协议的协议编号的情况下,第二蓝牙设备接收到控制帧后,不向第一蓝牙设备返回响应。对应的,第一蓝牙设备在发送控制帧后,无需等待第二蓝牙设备的响应,继续发送数据帧。
在本实施例中,在控制帧包括用于表示第一分包协议的协议编号的情况下,第一蓝牙设备在发送控制帧后无需第二蓝牙设备在接收到控制帧后返回响应,继续发送数据帧,可以提高数据传输速率,使得第二蓝牙设备可以更加快速地对接收到的数据进行处理。此外,在待传输数据较多的情况下,可以减少后续数据的等待时间。
可以理解的是,在控制帧中包括用于表示第二分包协议的协议编号的情况下,第二蓝牙设备接收到控制帧后,向第一蓝牙设备返回响应。对应的,第一蓝牙设备在发送控制帧后,需要等待第二蓝牙设备的响应。第一蓝牙设备在接收到第二蓝牙设备的响应、且该响应表示第二蓝牙设备符合接收条件的情况下,发送数据帧;第一蓝牙设备在接收到第二蓝牙设备的响应、且该响应表示第二蓝牙设备不符合接收条件的情况下,不发送数据帧;第一蓝牙设备在未接收到第二蓝牙设备的响应的情况下,不发送数据帧。
在本实施例中,在控制帧包括用于表示第二分包协议的协议编号的情况下,第二蓝牙设备在接收到控制帧后,可以是检测第二蓝牙设备是否符合接收条件,并向第一蓝牙设备返回表示第二蓝牙设备是否符合接收条件的响应。其中,可以是在第二蓝牙设备的BLE连接可用的情况下,确定第二蓝牙设备符合接收条件,在第二蓝牙设备的BLE连接不可用的情况下,确定第二蓝牙设备不符合接收条件。还可以是在第二蓝牙设备接收到确认接收的指令的情况下,确定第二蓝牙设备符合接收条件,在第二蓝牙设备接收到拒绝接收的指令、或未接收到确认接收的指令的情况下,确定第二蓝牙设备不符合接收条件。
在本实施例中,可以预先根据应用场景或具体需求设定数据的业务方所对应的分包协议。在待传输数据的业务方所对应的分包协议为第一分包协议的情况下,生成的控制帧中包括的协议编号表示第一分包协议;在待传输数据的业务方所对应的分包协议为第二分包协议的情况下,生成的控制帧中包括的协议编号表示第二分包协议。
在本实施例中,根据业务方预先选定分包协议对待传输数据进行分包处理和传输,可以使得数据传输方式更加灵活。
在一些实施例中,所述第一分包协议的协议编号还用于指示所述第二蓝牙设备在接收到所述数据帧后,不向所述第一蓝牙设备返回响应。所述第二分包协议的协议编号用于指示所述第二蓝牙设备在接收到所述数据帧后,向所述第一蓝牙设备返回响应。
在控制帧中包括用于表示第一分包协议的协议编号的情况下,第一蓝牙设备在N个数据帧发送完成的情况下,无需等待第二蓝牙设备返回表示第二蓝牙设备接收成功或接收失败的响应,结束本次数据传输过程。第二蓝牙设备在接收到的数据帧的数量小于分包数量信息所指示的数量,且超过第二设定时间未接收到数据帧的情况下,可以是不对接收到的控制帧和数据帧中所包含的数据进行组装,也可以是对接收到的控制帧和数据帧中所包含的数据进行组装,在此不做限定。
在本实施例中,在控制帧中包括用于表示第一分包协议的协议编号的情况下,第二蓝牙设备在接收到数据帧后无需向第一蓝牙设备返回响应,直接将接收到的控制帧和数据帧中所包含的数据进行组装,得到第一蓝牙设备本次传输的数据,可以使得第二蓝牙设备可以更加快速地对接收到的数据进行处理。
在控制帧中包括用于表示第二分包协议的协议编号的情况下,第一蓝牙设备在N个数据帧发送完成的情况下,等待第二蓝牙设备返回表示第二蓝牙设备接收成功或接收失败的响应。第一蓝牙设备在接收到第二蓝牙设备返回的接收成功的响应的情况下,结束本次数据传输过程。第一蓝牙设备在接收到第二蓝牙设备返回的接收失败的响应的情况下,重新发送待传输数据的数据帧。
在本实施例中,在控制帧中包括用于表示第二分包协议的协议编号的情况下,第二蓝牙设备在接收到控制帧后的第一设定时间内,接收到的数据帧的数量小于分包数量信息所指示的数量,且超过第二设定时间未接收到数据帧的情况下,向第一蓝牙设备返回接收失败的响应。第二蓝牙设备在接收到控制帧后的第一设定时间内,接收到的数据帧的数量等于分包数量信息所指示的数量的情况下,向第一蓝牙设备返回接收成功的响应。
在本实施例中,第二蓝牙设备可以是在向第一蓝牙设备返回接收成功的响应的情况下,对接收到的控制帧和数据帧中所包含的数据进行组装,得到第一蓝牙设备传输的数据。第二蓝牙设备可以是在向第一蓝牙设备返回接收失败的响应的情况下,不对接收到的控制帧和数据帧中所包含的数据进行组装。
在一些实施例中,所述控制帧还包括以下信息中的至少一种:帧头,所述待传输数据的数据类型。
帧头可以用于表示该消息帧为控制帧。该帧头的数值可以是除N个数据帧的分包编号以外的数值。
在本申请实施例中,帧头还可以表示控制帧中所携带的第一数据分包在待传输数据中的排列顺序。
在第一数据分包为待传输数据的前L1个字节的情况下,控制帧的帧头可以是0。在第一数据分包为待传输数据的后L1个字节的情况下,控制帧的帧头可以是N+1。其中,N为第二数据分包的数量,L1为控制帧的第一字段长度。
待传输数据的数据类型,可以根据业务所制定的数值来表示。例如,0x01表示待传输数据的数据类型是查询学生的身份信息;0x02表示待传输数据的数据类型是查询老师的身份信息。
在一些实施例中,控制帧的结构可以是如下表1所示。
表1
帧头 协议编号 数据类型 分包数量信息 第一数据分包
帧头可以表示该消息帧为控制帧。在本申请实施例中,帧头还可以表示控制帧中所携带的第一数据分包在待传输数据中的排列顺序,该帧头可以是占用2个字节,例如,可以是0x0000。
协议编号可以表示蓝牙通信所使用的协议。在本申请中,包括第一分包协议或第二分包协议,协议编号可以是占用1个字节。例如,在协议编号为0x01时,表示对待传输数据进行分包和组装的协议为第一分包协议,以指示第二蓝牙设备在接收到控制帧后,不向第一蓝牙设备返回响应。在协议编号为0x02时,表示对待传输数据进行分包和组装的协议为第二分包协议,以指示第二蓝牙设备在接收到控制帧后,向第一蓝牙设备返回响应。
数据类型可以是根据业务所约定的,可以是占用1个字节。例如,在数据类型为0x01时,表示数据类型为查询学生的身份信息;在数据类型为0x02时,表示数据类型为查询老师的身份信息。
分包数量信息可以是指示第二数据分包的数量,也可以是指示待传输数据整体分包的数量。该分包数量信息可以是占用2个字节。
第一数据分包可以是对待传输数据进行分包处理所得到的、由控制帧所携带的部分数据。第一数据分包占用的字节数可以是MTU-6。
在一些实施例中,数据帧的结构可以是如下表2所示。
表2
分包编号 第二数据分包
分包编号可以表示数据帧中所携带的第二数据分包在待传输数据中的排列顺序,该分包编号可以是占用2个字节,例如,该分包编号可以是按照对应的第二数据分包在待传输数据中的排列顺序,从0x0001开始自增。
第二数据分包可以是对待传输数据进行分包处理所得到的、由数据帧所携带的部分数据。除最后一个数据帧以外的其他数据帧,第二数据分包占用的字节数可以是MTU-2,最后一个数据帧中第二数据分包占用的字节数不大于MTU-2。
图3为本公开一个实施例提供的数据传输方法的流程示意图,该方法的执行主体为第二蓝牙设备,如图3所示,该方法包括:
步骤301,与第一蓝牙设备建立BLE连接。
可以理解的是,执行本实施例方法的第二蓝牙设备可以是主设备,也可以是从设备。
步骤302,通过所述BLE连接,接收第一蓝牙设备发送的控制帧,控制帧包括待传输数据中的部分数据。
在一些实施例中,控制帧还用于指示第二蓝牙设备接收数据帧。
在一些实施例中,第一蓝牙设备可以是对所述待传输数据进行分包处理,得到第一数据分包及至少一个第二数据分包;生成控制帧和数据帧,其中,所述控制帧包括所述第一数据分包,所述至少一个数据帧包括所述第二数据分包。
第一蓝牙设备可以是在生成控制帧的情况下,将控制帧发送至第二蓝牙设备中。在第一蓝牙设备发送控制帧的情况下,数据帧可以是还未生成,也可以是已生成完成。
在一些实施例中,所述控制帧包括分包数量信息,所述分包数量信息用于指示所述第二数据分包的数量。
在一些实施例中,第二蓝牙设备可以是在接收到数据帧的数量等于分包数量信息所指示的数量的情况下,对本次接收到的控制帧和数据帧中所携带的数据进行组装。
在一些实施例中,第二蓝牙设备可以是在接收到分包编号与分包数量信息所指示的数量匹配的数据帧的情况下,对本次接收到的控制帧和数据帧中所携带的数据进行组装。
在一些实施例中,第二蓝牙设备在接收到控制帧后的第一设定时间内,接收到的数据帧的数量小于分包数量信息所指示的数量,且超过第二设定时间未接收到数据帧的情况下,确定本次数据传输过程出现丢包,可以是对本次接收到的控制帧和数据帧中所携带的数据进行组装,也可以是不对本次接收到的控制帧和数据帧中所携带的数据进行组装。
在一些实施例中,所述控制帧包括用于表示分包协议的协议编号,所述分包协议包括第一分包协议或第二分包协议;接收所述第一蓝牙设备发送的控制帧之后,所述方法还包括:在所述控制帧包含的协议编号表示第一分包协议的情况下,在接收到所述控制帧后不向所述第一蓝牙设备返回响应;在所述控制帧包含的协议编号表示第二分包协议的情况下,在接收到所述控制帧后向所述第一蓝牙设备返回响应。
可以理解的是,在控制帧中包括用于表示第一分包协议的协议编号的情况下,第二蓝牙设备接收到控制帧后,不向第一蓝牙设备返回响应。对应的,第一蓝牙设备在发送控制帧后,无需等待第二蓝牙设备的响应,继续发送数据帧。
在本实施例中,第一蓝牙设备在发送控制帧后无需第二蓝牙设备在接收到控制帧后返回响应,继续发送数据帧,可以提高数据传输速率,使得第二蓝牙设备可以更加快速地对接收到的数据进行处理。此外,在待传输数据较多的情况下,可以减少后续数据的等待时间。
可以理解的是,在控制帧中包括用于表示第二分包协议的协议编号的情况下,第二蓝牙设备接收到控制帧后,向第一蓝牙设备返回响应。对应的,第一蓝牙设备在发送控制帧后,需要等待第二蓝牙设备的响应。第一蓝牙设备在接收到第二蓝牙设备的响应、且该响应表示第二蓝牙设备符合接收条件的情况下,发送数据帧;第一蓝牙设备在接收到第二蓝牙设备的响应、且该响应表示第二蓝牙设备不符合接收条件的情况下,不发送数据帧;第一在未接收到第二蓝牙设备的响应的情况下,不发送数据帧。
在本实施例中,第二蓝牙设备在接收到控制帧后,可以是检测第二蓝牙设备是否符合接收条件,并向第一蓝牙设备返回表示第二蓝牙设备是否符合接收条件的响应。其中,可以是在第二蓝牙设备的BLE连接可用的情况下,确定第二蓝牙设备符合接收条件,在第二蓝牙设备的BLE连接不可用的情况下,确定第二蓝牙设备不符合接收条件。还可以是在第二蓝牙设备接收到确认接收的指令的情况下,确定第二蓝牙设备符合接收条件,在第二蓝牙设备接收到拒绝接收的指令、或未接收到确认接收的指令的情况下,确定第二蓝牙设备不符合接收条件。
步骤303,根据控制帧,接收第一蓝牙设备发送的至少一个数据帧,至少一个数据帧包括所述待传输数据中的其他部分数据。
第二蓝牙设备接收到控制帧,说明第一蓝牙设备开始向第二蓝牙设备发送待传输数据,第一蓝牙设备在控制帧之后,还会继续发送至少一个数据帧。因此,第二蓝牙设备在接收到控制帧后,可以继续接收至少一个数据帧。
在一种可能的实现方式中,在所述控制帧包含的协议编号表示第一分包协议的情况下,根据控制帧,接收第一蓝牙设备发送的至少一个数据帧,可以是继续接收数据帧。
其中,第二蓝牙设备在接收到控制帧后,无需向第一蓝牙设备返回响应,即可继续接收数据帧,可以提高数据传输速率,使得第二蓝牙设备可以更加快速地对接收到的数据进行处理。此外,在待传输数据较多的情况下,可以减少后续数据的等待时间。
在一种可能的实现方式中,在所述控制帧包含的协议编号表示第二分包协议的情况下,根据控制帧,接收第一蓝牙设备发送的至少一个数据帧,可以是在向第一蓝牙设备返回响应的情况下,接收数据帧。
本实施例中,在用于指示第二蓝牙设备接收数据帧的控制帧中,携带待传输数据中的部分数据,在数据帧中携带待传输数据中的其他部分数据,可以有效利用控制帧的传输资源,而且,还有较高机率减少数据帧的数量,进而有利于从整体上减少数据传输时间。
在一些实施例中,第二蓝牙设备可以是对接收到的控制帧和数据帧中所包含的数据进行组装,得到第一蓝牙设备所传输的数据。
在一些实施例中,第二蓝牙设备可以是按照接收顺序,对接收到的控制帧和数据帧中所携带的数据进行拼接,得到蓝牙设备所传输的数据。具体的,较早接收到的数据在拼接得到的数据中的位置可以是较为靠前,较晚接收到的数据在拼接得到的数据中的位置可以是较为靠后。例如,控制帧中携带数据P1,第1个数据帧中携带数据P2,第2个数据帧中携带数据P3,第3个数据帧中携带数据P4,第4个数据帧中携带数据P5,那么,在接收顺序为控制帧、第1个数据帧、第2个数据帧、第3个数据帧、第4个数据帧的情况下,对接收到的数据进行拼接,即对数据P1、数据P2、数据P3、数据P4和数据P5顺次进行拼接,得到第一蓝牙设备所传输的数据。
在一些实施例中,在数据帧中包括对应的第二数据分包的分包编号,控制帧中包括帧头的情况下,第二蓝牙设备还可以是按照帧头和分包编号由小到大的顺序,对控制帧和数据帧中所携带的数据进行拼接,得到蓝牙设备所传输的数据。具体的,对应的分包编号较小的数据在拼接得到的数据中的位置可以是较为靠前,对应的分包编号较大的数据在拼接得到的数据中的位置可以是较为靠后。例如,控制帧中携带数据P1,第1个数据帧中携带数据P2,第2个数据帧中携带数据P3,第3个数据帧中携带数据P4,第4个数据帧中携带数据P5,那么,在控制帧的帧头为0,第1个数据帧、第3个数据帧、第2个数据帧、第4个数据帧包括的分包编号分别为1、2、3、4的情况下,对接收到的数据进行拼接,即对数据P1、数据P2、数据P3、数据P4、数据P5顺次进行拼接,得到第一蓝牙设备所传输的数据。再例如,控制帧中携带数据P1,第1个数据帧中携带数据P2,第2个数据帧中携带数据P3,第3个数据帧中携带数据P4,第4个数据帧中携带数据P5,那么,在控制帧的帧头为5,第1个数据帧、第3个数据帧、第2个数据帧、第4个数据帧包括的分包编号分别为1、2、3、4的情况下,对接收到的数据进行拼接,即对数据P2、数据P3、数据P4、数据P5、数据P1顺次进行拼接,得到第一蓝牙设备所传输的数据。
在一些实施例中,所述第一分包协议的协议编号还用于指示所述第二蓝牙设备在接收到所述数据帧后,不向所述第一蓝牙设备返回响应。所述第二分包协议的协议编号用于指示所述第二蓝牙设备在接收到所述数据帧后,向所述第一蓝牙设备返回响应。
在控制帧中包括用于表示第一分包协议的协议编号的情况下,第一蓝牙设备在N个数据帧发送完成的情况下,无需等待第二蓝牙设备返回表示第二蓝牙设备接收成功或接收失败的响应,结束本次数据传输过程。第二蓝牙设备在接收到的数据帧的数量小于分包数量信息所指示的数量,且超过第二设定时间未接收到数据帧的情况下,可以是不对接收到的控制帧和数据帧中所包含的数据进行组装,也可以是对接收到的控制帧和数据帧中所包含的数据进行组装,在此不做限定。
在本实施例中,第二蓝牙设备在接收到数据帧后无需向第一蓝牙设备返回响应,直接将接收到的控制帧和数据帧中所包含的数据进行组装,得到第一蓝牙设备本次传输的数据,可以使得第二蓝牙设备可以更加快速地对接收到的数据进行处理。
在控制帧中包括用于表示第二分包协议的协议编号的情况下,第一蓝牙设备在N个数据帧发送完成的情况下,等待第二蓝牙设备返回表示第二蓝牙设备接收成功或接收失败的响应。第一蓝牙设备在接收到第二蓝牙设备返回的接收成功的响应的情况下,结束本次数据传输过程。第一蓝牙设备在接收到第二蓝牙设备返回的接收失败的响应的情况下,重新发送待传输数据的数据帧。
在本实施例中,第二蓝牙设备在接收到控制帧后的第一设定时间内,接收到的数据帧的数量小于分包数量信息所指示的数量,且超过第二设定时间未接收到数据帧的情况下,向第一蓝牙设备返回接收失败的响应。第二蓝牙设备在接收到控制帧后的第一设定时间内,接收到的数据帧的数量等于分包数量信息所指示的数量的情况下,向第一蓝牙设备返回接收成功的响应。
在本实施例中,第二蓝牙设备可以是在向第一蓝牙设备返回接收成功的响应的情况下,对接收到的控制帧和数据帧中所包含的数据进行组装,得到第一蓝牙设备传输的数据。第二蓝牙设备可以是在向第一蓝牙设备返回接收失败的响应的情况下,不对接收到的控制帧和数据帧中所包含的数据进行组装。
在一些实施例中,所述数据帧还包括:所述数据帧中的第二数据分包的分包编号。
在本实施例中,第二数据分包的分包编号,表示对应数据帧中所包含的第二数据分包在待传输数据中的排列顺序。不同数据帧中的分包编号不同。具体的,可以是较小的分包编号所对应的第二数据分包在待传输数据中的排列顺序较为靠前,较大的分包编号所对应的第二数据分包在待传输数据中的排列顺序较为靠后。
在一些实施例中,所述控制帧还包括帧头。帧头可以表示该消息帧为控制帧。
在一些实施例中,控制帧的帧头,还可以用于表示第一数据分包相对于N个第二数据分包在待传输数据中的位置顺序。在帧头为0的情况下,表示第一数据分包在N个第二数据分包之前,在帧头大于N的情况下,表示第一数据分包在N个第二数据分包之后。其中,N为控制帧中的分包数量信息,指示第二数据分包的数量。
在本实施例中,第二蓝牙设备可以是根据控制帧的帧头和数据帧的分包编号由小到大的顺序,对第一数据分包和第二数据分包进行排列,并对排列后的数据分包进行组装,即得到第一蓝牙设备传输的数据。
图4为本公开一个实施例提供的数据传输方法的流程图。如图4所示,第一蓝牙设备和第二蓝牙设备之间预先建立BLE连接。第一蓝牙设备可以是先向第二蓝牙设备发送控制帧,在控制帧发送完成的情况下,无需第二蓝牙设备返回响应,继续向第二蓝牙设备发送第1个数据帧,在第1个数据帧发送完成的情况下,继续向第二蓝牙设备发送第2个数据帧,在第2个数据帧发送完成的情况下,继续向第二蓝牙设备发送后续的数据帧,在第N-1个数据帧发送完成的情况下,继续向第二蓝牙设备发送第N个数据帧。第二蓝牙设备在接收到N个数据帧的情况下,无需向第一蓝牙设备返回响应,继续对接收的控制帧和数据帧中所包含的数据进行组装,得到第一蓝牙设备传输的数据。
图5为本公开一个实施例提供的数据传输方法的流程图。如图5所示,第一蓝牙设备和第二蓝牙设备之间预先建立BLE连接。第一蓝牙设备可以是先向第二蓝牙设备发送控制帧,在控制帧发送完成的情况下,第二蓝牙设备检测自身是否符合接收条件,并向第一蓝牙设备返回响应,第一蓝牙设备在接收到的响应表示第二蓝牙设备符合接收条件的情况下,向第二蓝牙设备发送第1个数据帧,在第1个数据帧发送完成的情况下,继续向第二蓝牙设备发送第2个数据帧,在第2个数据帧发送完成的情况下,继续向第二蓝牙设备发送后续的数据帧,在第N-1个数据帧发送完成的情况下,继续向第二蓝牙设备发送第N个数据帧。第二蓝牙设备在接收到N个数据帧的情况下,向第一蓝牙设备返回接收成功的响应,并在返回响应后对接收的控制帧和数据帧中所包含的数据进行组装,得到第一蓝牙设备传输的数据。第一蓝牙设备在接收到第二蓝牙设备发送的接收成功的响应的情况下,结束本次数据传输过程。
图6为本公开一个实施例提供的数据传输方法的流程图。如图6所示,第一蓝牙设备和第二蓝牙设备之间预先建立BLE连接。第一蓝牙设备获取待传输数据,判断待传输数据对应的分包协议,在待传输数据对应的分包协议为第一分包协议的情况下,可以是执行图6中的实线所对应的步骤,无需执行虚线所对应的步骤。具体的,第一蓝牙设备可以是对待传输数据进行分包处理,得到第一数据分包和至少一个第二数据分包,生成控制帧和至少一个数据帧,其中,控制帧包括第一数据分包,数据帧包括第二数据分包。第一蓝牙设备可以是先向第二蓝牙设备发送控制帧,在控制帧发送完成的情况下,无需第二蓝牙设备返回响应,继续向第二蓝牙设备发送第1个数据帧,在第1个数据帧发送完成的情况下,继续向第二蓝牙设备发送第2个数据帧,在第2个数据帧发送完成的情况下,继续向第二蓝牙设备发送后续的数据帧,在第N-1个数据帧发送完成的情况下,继续向第二蓝牙设备发送第N个数据帧。第二蓝牙设备在接收到N个数据帧的情况下,无需向第一蓝牙设备返回响应,继续对接收的控制帧和数据帧中所包含的数据进行组装,得到第一蓝牙设备传输的数据。
在待传输数据对应的分包协议为第二分包协议的情况下,可以是执行图6中的实线和虚线所对应的步骤。具体的,第一蓝牙设备可以是对待传输数据进行分包处理,得到第一数据分包和至少一个第二数据分包,生成控制帧和至少一个数据帧,其中,控制帧包括第一数据分包,数据帧包括第二数据分包。第一蓝牙设备可以是先向第二蓝牙设备发送控制帧,在控制帧发送完成的情况下,第二蓝牙设备检测自身是否符合接收条件,并向第一蓝牙设备返回响应,第一蓝牙设备在接收到的响应表示第二蓝牙设备符合接收条件的情况下,向第二蓝牙设备发送第1个数据帧,在第1个数据帧发送完成的情况下,继续向第二蓝牙设备发送第2个数据帧,在第2个数据帧发送完成的情况下,继续向第二蓝牙设备发送后续的数据帧,在第N-1个数据帧发送完成的情况下,继续向第二蓝牙设备发送第N个数据帧。第二蓝牙设备在接收到N个数据帧的情况下,向第一蓝牙设备返回接收成功的响应,并在返回响应后对接收的控制帧和数据帧中所包含的数据进行组装,得到第一蓝牙设备传输的数据。第一蓝牙设备在接收到第二蓝牙设备发送的接收成功的响应的情况下,结束本次数据传输过程。
图7为本公开一个实施例提供的蓝牙设备的结构示意图,该设备可以是终端、芯片或其他支持蓝牙功能的电子设备。
如图7所示,该蓝牙设备700可以包括处理器710和存储器720,存储器720用于存储计算机程序,所述计算机程序用于控制处理器710执行如前述实施例所述的数据传输方法。
示例性的,如图8所示,该蓝牙设备800可以为终端,其中包括但不限于:蓝牙模块801、网络模块802、音频输出单元803、输入单元804、传感器805、显示单元806、用户输入单元807、接口单元808、存储器809以及处理器810等中的至少部分部件。
本领域技术人员可以理解,蓝牙设备800还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器810逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图6中示出的蓝牙设备结构并不构成对蓝牙设备的限定,蓝牙设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
应理解的是,本公开实施例中,输入单元804可以包括图形处理单元(GraphicsProcessing Unit,GPU)8041和麦克风8042,图形处理器8041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元806可包括显示面板8061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板8061。用户输入单元807包括触控面板8071以及其他输入设备8072中的至少一种。触控面板8071,也称为触摸屏。触控面板8071可包括触摸检测装置和触摸控制器两个部分。其他输入设备8072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
在一些实施例中,蓝牙模块801接收到控制帧和数据帧之后,可以传输给处理器810进行处理。处理器810还可以将生成的控制帧和数据帧通过蓝牙模块801发送出去。
存储器809可用于存储软件程序或指令以及各种数据。存储器809可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器809可以包括易失性存储器或非易失性存储器,或者,存储器809可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programma ble ROM,PROM)、可擦除可编程只读存储器(Erasa ble PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(SynchronousDR AM,SDR AM)、双倍数据速率同步动态随机存取存储器(Double Da ta Ra te SDR AM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本公开实施例中的存储器809包括但不限于这些和任意其它适合类型的存储器。
处理器810可包括一个或多个处理单元;可选的,处理器810集成应用处理器和蓝牙处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,蓝牙处理器主要处理蓝牙数据。可以理解的是,上述蓝牙处理器也可以不集成到处理器810中。
在此需要说明的是,本公开实施例提供的蓝牙设备,能够实现上述任意方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
在本实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时实现如本公开任意实施例的方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本公开的范围由所附权利要求来限定。

Claims (12)

1.一种数据传输方法,其中,应用于第一蓝牙设备,包括:
与第二蓝牙设备建立低功耗蓝牙BLE连接;
通过所述BLE连接依次发送控制帧和至少一个数据帧,所述控制帧用于指示所述第二蓝牙设备本次数据传输包括几个数据帧,且所述控制帧包括待传输数据中的部分数据,所述至少一个数据帧包括所述待传输数据中的其他部分数据。
2.根据权利要求1所述的方法,其中,所述通过所述BLE连接依次发送控制帧和至少一个数据帧之前,还包括:
对所述待传输数据进行分包处理,得到第一数据分包及至少一个第二数据分包;
生成所述控制帧和所述至少一个数据帧,其中,所述控制帧包括所述第一数据分包,每个所述至少一个数据帧包括一个对应的第二数据分包。
3.根据权利要求2所述的方法,其中,所述控制帧包括分包数量信息,所述分包数量信息用于指示所述第二数据分包的数量。
4.根据权利要求2所述的方法,其中,对所述待传输数据进行分包处理,得到第一数据分包及至少一个第二数据分包,包括:
基于所述控制帧中可用于携带所述待传输数据的字段的第一字段长度,以及所述数据帧中可用于携带所述待传输数据的字段的第二字段长度,对所述待传输数据分包得到所述第一数据分包和所述至少一个第二数据分包。
5.根据权利要求2所述的方法,其中,所述数据帧还包括:所述数据帧中的第二数据分包的分包编号。
6.根据权利要求1所述的方法,其中,所述控制帧包括用于表示分包协议的协议编号,所述分包协议包括第一分包协议或第二分包协议;
所述第一分包协议的协议编号用于指示所述第二蓝牙设备在接收到所述控制帧后,不向所述第一蓝牙设备返回响应;
所述第二分包协议的协议编号用于指示所述第二蓝牙设备在接收到所述控制帧后,向所述第一蓝牙设备返回响应。
7.根据权利要求2所述的方法,其中,所述控制帧还包括以下信息中的至少一种:帧头、所述待传输数据的数据类型。
8.根据权利要求4所述的方法,其中,所述控制帧的长度为最大传输单元MTU;
所述至少一个数据帧中,最后一个数据帧的长度不大于所述MTU,除所述最后一个数据帧之外的其他数据帧的长度为所述MTU。
9.一种数据传输方法,其中,应用于第二蓝牙设备,包括:
与第一蓝牙设备建立BLE连接;
通过所述BLE连接,接收所述第一蓝牙设备发送的控制帧,所述控制帧包括待传输数据中的部分数据;
根据所述控制帧,接收所述第一蓝牙设备发送的至少一个数据帧,所述至少一个数据帧包括所述待传输数据中的其他部分数据。
10.根据权利要求9所述的方法,其中,所述控制帧包括用于表示分包协议的协议编号,所述分包协议包括第一分包协议或第二分包协议;
接收所述第一蓝牙设备发送的控制帧之后,还包括:
在所述控制帧包含的协议编号表示第一分包协议的情况下,在接收到所述控制帧后不向所述第一蓝牙设备返回响应;
在所述控制帧包含的协议编号表示第二分包协议的情况下,在接收到所述控制帧后向所述第一蓝牙设备返回响应。
11.一种蓝牙设备,其中,包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序用于控制所述处理器执行如权利要求1至8中任一项所述的方法,或者执行如权利要求9至10中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如权利要求1至8中任一项所述的方法,或者,实现如权利要求9至10中任一项所述的方法。
CN202311056606.2A 2023-08-21 2023-08-21 数据传输方法、蓝牙设备及可读存储介质 Pending CN117119421A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311056606.2A CN117119421A (zh) 2023-08-21 2023-08-21 数据传输方法、蓝牙设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311056606.2A CN117119421A (zh) 2023-08-21 2023-08-21 数据传输方法、蓝牙设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN117119421A true CN117119421A (zh) 2023-11-24

Family

ID=88812152

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311056606.2A Pending CN117119421A (zh) 2023-08-21 2023-08-21 数据传输方法、蓝牙设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN117119421A (zh)

Similar Documents

Publication Publication Date Title
CN110365491B (zh) 业务处理方法、装置、设备、存储介质以及数据共享系统
EP3547715B1 (en) Method and apparatus for reducing continuous-wakeup delay of bluetooth loudspeaker, and bluetooth loudspeaker
CN101622587B (zh) 用于唤醒计算设备的集中式服务
US10530716B2 (en) Voice chat mode self-adapting method and apparatus
CN112767936B (zh) 语音对话方法、装置、存储介质及电子设备
AU2021269599B2 (en) Information transmission method and apparatus, and electronic device
CN109120687B (zh) 数据包发送方法、装置、系统、设备及存储介质
CN108712320B (zh) 消息推送方法及装置
CN111800867B (zh) 半持续调度物理下行共享信道的反馈方法及终端设备
CN113285866B (zh) 信息发送方法、装置和电子设备
KR20190016671A (ko) 통신 장치, 서버 및 통신 방법
US20240298258A1 (en) Network Connection Method, Electronic Device and Non-Transitory Readable Storage Medium
CN113778590B (zh) 远程协助方法、装置、电子设备及介质
CN111385068B (zh) 数据传输方法、装置、电子设备及通信系统
EP2814201A1 (en) Notification message sending method, system, manipulation apparatus, and terminal device
WO2014026542A1 (zh) 即时通信应用的实现方法及系统、与设备
WO2023241613A1 (zh) 通话建立方法、装置、终端、系统及可读存储介质
CN117119421A (zh) 数据传输方法、蓝牙设备及可读存储介质
CN109660988A (zh) 通信鉴权处理方法、装置及电子设备
CN110048865A (zh) 一种总线数据传输方法、装置、电子设备及存储介质
CN113179322B (zh) 远程交互方法、装置、电子设备及存储介质
CN112446223B (zh) 翻译方法、装置及电子设备
CN113905083A (zh) 用户代码运行方法及装置、电子设备和存储介质
CN108495336B (zh) 基于无线通讯的数据收发方法、装置和计算机设备
US20140214987A1 (en) Method and system of providing an instant messaging service

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