CN110830972A - 用于蓝牙通讯的数据传输方法和装置以及存储介质 - Google Patents
用于蓝牙通讯的数据传输方法和装置以及存储介质 Download PDFInfo
- Publication number
- CN110830972A CN110830972A CN201911214080.XA CN201911214080A CN110830972A CN 110830972 A CN110830972 A CN 110830972A CN 201911214080 A CN201911214080 A CN 201911214080A CN 110830972 A CN110830972 A CN 110830972A
- Authority
- CN
- China
- Prior art keywords
- data
- queue
- sending
- bluetooth communication
- piece
- 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
Images
Classifications
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种用于蓝牙通讯的数据传输方法和装置以及存储介质,该方法包括:将待传输的多条数据按顺序存储在数据队列中;从数据队列中依次取出多条数据中的一条数据并发送所取出的一条数据;其中,发送所取出的一条数据包括:将所取出的一条数据拆分为多个数据包,并将多个数据包按顺序存储在封装队列中;依次发送封装队列中的多个数据包。本发明的上述技术方案,至少能够解决在蓝牙传输大数据时容易发生数据顺序错乱而导致接收到的数据不可解析的问题。
Description
技术领域
本发明涉及蓝牙传输技术领域,具体来说,涉及一种用于蓝牙通讯的数据传输方法和装置以及存储介质。
背景技术
随着物联网的兴起,越来越多的设备与物联网相关联。由于蓝牙通讯技术具有较远的控制距离,且范围内不受位置影响,因此完美的替代了红外控制和有线控制。所以蓝牙通讯技术也越来越多的被应用于物联网设备,比如蓝牙门锁、蓝牙电灯、蓝牙手表等。
通常在使用蓝牙通讯时,小数据可以通过一次性发送而到达例如智能门锁端的接收端。然而当数据量较大时,蓝牙无法实现一次性传输这样的大数据。因此就要对大数据进行拆包处理,即把大数据拆分成多个小数据块,然后在经过多次发送到达智能门锁端之后,再由智能门锁端将多个小数据块拼接成完整的大数据,由此完成大数据的蓝牙通讯传输。
上述的蓝牙通讯传输方法所带来的问题也随之而来。当与数据接收端(例如智能门锁等)需要较大数据量通讯时,便会出现数据接收端收到的数据无法解析的问题。
例如,智能门锁的用户列表及其对应的钥匙列表数据,该数据较大,所以需要对数据进行拆包后再进行传输。拆分后的小数据包在发送时就有可能出现顺序错乱,导致智能门锁无法对收到的数据进行解析和处理。然而这种实现方案可能会出现拆包后的小数据块发送顺序错乱的问题,进而导致智能门锁端接收并拼接的大数据无法正常解析。这种问题会在连续上传大数据时频繁出现。
发明内容
针对相关技术中的上述问题,本发明提出一种用于蓝牙通讯的数据传输方法和装置以及存储介质,能够解决在蓝牙传输大数据时容易发生数据顺序错乱而导致接收到的数据不可解析的问题。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种用于蓝牙通讯的数据传输方法,包括:
将待传输的多条数据按顺序存储在数据队列中;
从数据队列中依次取出多条数据中的一条数据;
发送所取出的一条数据,包括:
将所取出的一条数据拆分为多个数据包,并将多个数据包按顺序存储在封装队列中;
依次发送封装队列中的多个数据包。
根据本发明的实施例,发送所取出的一条数据还包括:将所要发送的数据包的发送方式设置为发送成功后返回回执;在所要发送的数据包发送成功之后,从封装队列中移除发送成功的数据包。
根据本发明的实施例,在移除发送成功的数据包之后还包括:判断封装队列是否为空,若是,则从数据队列中移除一条数据并取出和发送下一条数据直到数据队列为空。
根据本发明的实施例,发送所取出的一条数据还包括:判断所取出的数据是否大于预定大小;其中,根据判断结果将大于预定大小的数据拆分为多个数据包。
其中,根据判断结果,直接发送不大于预定大小的数据。
根据本发明的另一方面,提供了一种用于蓝牙通讯的数据传输装置,包括:
数据存储模块,用于将待传输的多条数据按顺序存储在数据队列中;
数据取出模块,用于从数据队列中依次取出多条数据中的一条数据;
数据发送模块,用于发送所取出的一条数据,包括:
数据包存储单元,用于将所取出的一条数据拆分为多个数据包,并将多个数据包按顺序存储在封装队列中;
数据包发送单元,用于依次发送封装队列中的多个数据包。
根据本发明的实施例,数据发送模块还包括:数据包设置单元,用于将所要发送的数据包的发送方式设置为发送成功后返回回执;数据包移除单元,用于在所要发送的数据包发送成功之后,从封装队列中移除发送成功的数据包。
根据本发明的实施例,数据发送模块还包括:第一判断单元,用于判断封装队列是否为空,其中,若第一判断单元判断封装队列为空,则数据取出模块从数据队列中移除一条数据并取出和发送下一条数据直到数据队列为空。
根据本发明的实施例,数据发送模块还包括:第二判断单元,用于判断所取出的数据是否大于预定大小;其中,数据包存储单元根据判断结果将大于预定大小的数据拆分为多个数据包;数据包发送单元根据判断结果,直接发送不大于预定大小的数据。
根据本发明的又一方面,提供了一种存储介质,存储有程序,程序被执行以实现上述的用于蓝牙通讯的数据传输方法。
本发明通过数据队列来按顺序存储需要发送给接收端的多条数据的数组队列,并且通过封装队列来按顺序存储数据队列中的数据拆包之后的数据包的数组队列。这样,数据队列保证了多条数据的发送顺序,封装队列保证了同一条数据的多个数据包的发送顺序。因此,本发明提供的数据传输方法,通过对数据队列和封装队列这两个顺序队列的维护,能够解决现有技术中同一条数据拆包之后发送顺序错乱的问题以及在多发送条数据时顺序错乱的问题,保证了数据拆包后的数据包的发送顺序,也保证了多条数据的发送顺序。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的用于蓝牙通讯的数据传输方法的流程图;
图2是根据本发明另一个实施例的用于蓝牙通讯的数据传输方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
图1是根据本发明实施例的用于蓝牙通讯的数据传输方法的流程图。如图1所示,根据本发明实施例的用于蓝牙通讯的数据传输方法可以包括以下步骤:
S110,将待传输的多条数据按顺序存储在数据(data)队列中。待传输的多条数据可以是蓝牙数据,例如是要发送给接收端(智能门锁端)的蓝牙数据。
S120,从数据队列中依次取出多条数据中的一条数据。
S130,发送所取出的一条数据。其中,在步骤S130处可以通过以下步骤来发送所取出的一条数据。
S131,将所取出的一条数据拆分为多个数据包,并将多个数据包按顺序存储在封装(package)队列中。
S132,依次发送封装队列中的多个数据包。
本发明的上述技术方案,通过数据队列来按顺序存储需要发送给接收端的多条数据的数组队列,并且通过封装队列来按顺序存储数据队列中的数据拆包之后的数据包的数组队列。这样,数据队列保证了多条数据的发送顺序,封装队列保证了同一条数据的多个数据包的发送顺序。因此,本发明提供的数据传输方法,通过对数据队列和封装队列这两个顺序队列的维护,能够解决现有技术中同一条数据拆包之后发送顺序错乱的问题以及在多发送条数据时顺序错乱的问题,保证了数据拆包后的数据包的发送顺序,也保证了多条数据的发送顺序。
图2是根据本发明另一个实施例的用于蓝牙通讯的数据传输方法的流程图。如图2所示,本发明提供的数据传输方法可以具体包括以下步骤:
S201,接收数据发送请求,并响应于数据发送请求而在接收到数据发送请求之后执行步骤S202。
在步骤S202处,与步骤S110类似的,将所要传输的数据存储在数据队列中,从而可以保证多个数据发送的顺序性。
然后方法进行步骤S203,从数据队列中取出数据队列中的第一条数据。以下说明中,以发送数据队列中的第一条数据进行说明。应当理解,以下步骤也适用于发送数据队列中的任意一条数据。步骤S203可以与步骤S120类似。
然后,与步骤S130类似的,开始执行发送所取出的一条数据的步骤。在一个实施例中,在发送所取出的一条数据之前,可以先判断所取出的数据是否大于预定大小;其中,根据判断结果将大于预定大小的数据拆分为多个数据包。或者,根据判断结果,直接发送不大于预定大小的数据。具体的,在步骤S204处,可以通过数据大小是否大于预定大小来判断所要传输的数据是否为大数据。其中,预定大小的具体数值可根据实际应用情况进行设定,本发明对此不进行限定。并根据数据是否为大数据来确定是否需要对数据进行拆包。如果判断数据不是大数据,则不需要进行拆包,执行步骤S206直接调用发送方法来直接发送该数据。并且在直接发送之后,执行步骤S211将所发送的这条数据从数据队列中移除。然后,返回步骤S203,在数据队列中取出下一条数据。如果在步骤S204处判断所要传输的数据是大数据,则需要对数据进行拆包。因此执行步骤S205,将所要传输的大数据进行拆包,分成若干个数据包。并且在步骤S207处,将拆包后的多个数据包存储在封装队列中,从而可以通过封装队列保证同一个数据拆分成的多个数据包发送的顺序性。
在一个实施例中,可以将所要发送的数据包的发送方式设置为发送成功后返回回执;在所要发送的数据包发送成功之后,从封装队列中移除发送成功的数据包。具体的,发送封装队列中的第一个数据包,并在步骤S208处将发送方式设置为发送成功后返回回执。在这样的实施例中,蓝牙的发送成功回执又保证了在一个数据包或者数据发送完成后才会发送下一个数据包或者数据,因此可以有利地保证数据包和数据的发送顺序。
然后,在步骤S209处,在发送成功之后,移除已经发送成功的封装队列中第一个数据包。随后,根据本发明的实施例,可以判断封装队列是否为空,若是,则从数据队列中移除该条数据并取出和发送下一条数据直到数据队列为空。具体的,在步骤S210处,判断当前的封装队列中是否还有未发送的数据包,如果有,则返回步骤S208,进行下一个数据包的发送,直到封装队列为空时进行步骤S211。在步骤S211处,当在步骤S210处判断封装队列为空时,认为封装队列中的多个数据包所对应的第一条数据发送完成,则从数据队列中移除已经发送的第一条数据。
在步骤S211之后执行步骤S212,判断数据队列中是否存在未发送的数据,如果有,则返回步骤S203,取出下一条数据,直到数据队列为空。当在步骤S212处判断数据队列为空时,进行步骤S213,完成多条大数据防错乱顺序发送。
根据本发明的实施例,还提供了一种用于蓝牙通讯的数据传输装置,可以包括:
数据存储模块,用于将待传输的多条数据按顺序存储在数据队列中;
数据取出模块,用于从数据队列中依次取出多条数据中的一条数据。
数据发送模块,用于发送所取出的一条数据。数据发送模块可以包括数据包存储单元和数据包发送单元。数据包存储单元用于将所取出的一条数据拆分为多个数据包,并将多个数据包按顺序存储在封装队列中。数据包发送单元用于依次发送封装队列中的多个数据包。
在一个实施例中,数据发送模块还可以包括数据包设置单元和数据包移除单元。数据包设置单元用于将所要发送的数据包的发送方式设置为发送成功后返回回执。数据包移除单元用于在所要发送的数据包发送成功之后,从封装队列中移除发送成功的数据包。
其中,数据发送模块还可以包括第一判断单元,第一判断单元用于判断封装队列是否为空。其中,若第一判断单元判断封装队列为空,则数据取出模块从数据队列中移除一条数据并取出和发送下一条数据直到数据队列为空。
在一个实施例中,数据发送模块还包括第二判断单元,第二判断单元用于判断所取出的数据是否大于预定大小。其中,数据包存储单元根据判断结果将大于预定大小的数据拆分为多个数据包。并且,数据包发送单元根据判断结果,直接发送不大于预定大小的数据。
根据本发明的实施例,还提供了一种存储介质,存储介质存储有程序,该程序被执行以实现上述的用于蓝牙通讯的数据传输方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种用于蓝牙通讯的数据传输方法,其特征在于,包括:
将待传输的多条数据按顺序存储在数据队列中;
从所述数据队列中依次取出所述多条数据中的一条数据;
发送所取出的所述一条数据,包括:
将所取出的所述一条数据拆分为多个数据包,并将所述多个数据包按顺序存储在封装队列中;
依次发送所述封装队列中的所述多个数据包。
2.根据权利要求1所述的用于蓝牙通讯的数据传输方法,其特征在于,发送所取出的所述一条数据还包括:
将所要发送的数据包的发送方式设置为发送成功后返回回执;
在所要发送的所述数据包发送成功之后,从所述封装队列中移除发送成功的所述数据包。
3.根据权利要求2所述的用于蓝牙通讯的数据传输方法,其特征在于,在移除发送成功的所述数据包之后还包括:
判断所述封装队列是否为空,
若是,则从所述数据队列中移除所述一条数据并取出和发送下一条数据直到所述数据队列为空。
4.根据权利要求1所述的用于蓝牙通讯的数据传输方法,其特征在于,发送所取出的所述一条数据还包括:
判断所取出的所述数据是否大于预定大小;
其中,根据判断结果将大于所述预定大小的数据拆分为多个数据包。
5.根据权利要求4所述的用于蓝牙通讯的数据传输方法,其特征在于,
根据判断结果,直接发送不大于所述预定大小的数据。
6.一种用于蓝牙通讯的数据传输装置,其特征在于,包括:
数据存储模块,用于将待传输的多条数据按顺序存储在数据队列中;
数据取出模块,用于从所述数据队列中依次取出所述多条数据中的一条数据;
数据发送模块,用于发送所取出的所述一条数据,包括:
数据包存储单元,用于将所取出的所述一条数据拆分为多个数据包,并将所述多个数据包按顺序存储在封装队列中;
数据包发送单元,用于依次发送所述封装队列中的所述多个数据包。
7.根据权利要求6所述的用于蓝牙通讯的数据传输装置,其特征在于,所述数据发送模块还包括:
数据包设置单元,用于将所要发送的数据包的发送方式设置为发送成功后返回回执;
数据包移除单元,用于在所要发送的所述数据包发送成功之后,从所述封装队列中移除发送成功的所述数据包。
8.根据权利要求7所述的用于蓝牙通讯的数据传输装置,其特征在于,所述数据发送模块还包括:
第一判断单元,用于判断所述封装队列是否为空,
其中,若所述第一判断单元判断所述封装队列为空,则所述数据取出模块从所述数据队列中移除所述一条数据并取出和发送下一条数据直到所述数据队列为空。
9.根据权利要求6所述的用于蓝牙通讯的数据传输装置,其特征在于,所述数据发送模块还包括:
第二判断单元,用于判断所取出的所述数据是否大于预定大小;
其中,所述数据包存储单元根据判断结果将大于所述预定大小的数据拆分为多个数据包;
所述数据包发送单元根据判断结果,直接发送不大于所述预定大小的数据。
10.一种存储介质,其特征在于,存储有程序,所述程序被执行以实现权利要求1-5任一项所述的用于蓝牙通讯的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911214080.XA CN110830972A (zh) | 2019-12-02 | 2019-12-02 | 用于蓝牙通讯的数据传输方法和装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911214080.XA CN110830972A (zh) | 2019-12-02 | 2019-12-02 | 用于蓝牙通讯的数据传输方法和装置以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110830972A true CN110830972A (zh) | 2020-02-21 |
Family
ID=69542056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911214080.XA Pending CN110830972A (zh) | 2019-12-02 | 2019-12-02 | 用于蓝牙通讯的数据传输方法和装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110830972A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050152350A1 (en) * | 2003-12-22 | 2005-07-14 | Nak-Woon Sung | System and method for transmitting/receiving automatic repeat request |
CN102647251A (zh) * | 2012-03-26 | 2012-08-22 | 北京星网锐捷网络技术有限公司 | 数据传输方法及系统、发送端设备与接收端设备 |
CN103248452A (zh) * | 2012-02-10 | 2013-08-14 | 宇龙计算机通信科技(深圳)有限公司 | 数据发送装置、数据接收装置、终端和数据传输方法 |
CN103716133A (zh) * | 2013-10-21 | 2014-04-09 | 杨湖 | 一种防止数据丢失方法 |
CN104661172A (zh) * | 2015-01-26 | 2015-05-27 | 武汉健坤科技有限公司 | 基于蓝牙低功耗的扩展数据传输方法和系统 |
CN106484652A (zh) * | 2016-10-26 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种基于ntb硬件的多队列通信方法及系统 |
CN108124284A (zh) * | 2017-12-06 | 2018-06-05 | 青岛真时科技有限公司 | 一种蓝牙数据传输方法和装置 |
-
2019
- 2019-12-02 CN CN201911214080.XA patent/CN110830972A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050152350A1 (en) * | 2003-12-22 | 2005-07-14 | Nak-Woon Sung | System and method for transmitting/receiving automatic repeat request |
CN103248452A (zh) * | 2012-02-10 | 2013-08-14 | 宇龙计算机通信科技(深圳)有限公司 | 数据发送装置、数据接收装置、终端和数据传输方法 |
CN102647251A (zh) * | 2012-03-26 | 2012-08-22 | 北京星网锐捷网络技术有限公司 | 数据传输方法及系统、发送端设备与接收端设备 |
CN103716133A (zh) * | 2013-10-21 | 2014-04-09 | 杨湖 | 一种防止数据丢失方法 |
CN104661172A (zh) * | 2015-01-26 | 2015-05-27 | 武汉健坤科技有限公司 | 基于蓝牙低功耗的扩展数据传输方法和系统 |
CN106484652A (zh) * | 2016-10-26 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种基于ntb硬件的多队列通信方法及系统 |
CN108124284A (zh) * | 2017-12-06 | 2018-06-05 | 青岛真时科技有限公司 | 一种蓝牙数据传输方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117361B (zh) | 一种小程序的远程调试方法、相关设备及系统 | |
CN106850402B (zh) | 消息的传输方法和装置 | |
CN106462474B (zh) | 使用故意延迟发送的网络超时 | |
EP2722991A1 (en) | Data decompression method for a controller equipped with limited ram | |
CN102611611B (zh) | 一种日志缓存系统及方法 | |
KR20150013294A (ko) | 디바이스를 동기화하는 메카니즘, 시스템 및 방법 | |
CN106155734B (zh) | 一种软件版本的下载方法及装置 | |
CN113938535A (zh) | 基于多协议适配的物联网设备接入方法及装置 | |
CN110581812A (zh) | 一种数据报文的处理方法和装置 | |
EP3506599A1 (en) | Method for synchronizing contact information, apparatus, medium, electronic device and system | |
CN112351086A (zh) | 文件传输方法、装置、设备和计算机可读存储介质 | |
CN106897052B (zh) | Apk文件压缩方法及装置 | |
CN110830972A (zh) | 用于蓝牙通讯的数据传输方法和装置以及存储介质 | |
CN112688885B (zh) | 一种报文处理方法及装置 | |
CN108063809B (zh) | 机器设备数据采集方法以及采集系统 | |
CN111770043A (zh) | 游戏数据通信方法、装置、存储介质及电子设备 | |
CN109800202B (zh) | 一种基于pcie的数据传输系统、方法及装置 | |
CN113568587B (zh) | 智慧城市实时数据处理方法、系统及存储介质 | |
CN106657092B (zh) | 一种基于ssl/tls的业务处理方法及装置 | |
CN105045638A (zh) | 一种软件包信息的获取方法、软件包的安装方法及装置 | |
WO2010104911A1 (en) | Synchronized relay messaging and coordinated network processing using snmp | |
CN111061682B (zh) | 一种数据缓存方法、读取方法、电子设备及存储介质 | |
CN106777332A (zh) | 一种Android终端中通过文件标识找到文件所在文件夹的系统及方法 | |
CN111585741A (zh) | 一种数据接入方法、系统、终端及存储介质 | |
CN102957633A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200221 |