本发明涉及数据传输领域,特别是涉及一种用于蓝牙广播的动态数据传输方法及系统。
背景技术:
由于蓝牙慢速广播是单工通信,且间歇性发送数据,这样的通信方式导致收发双方不知道数据是否发送成功,因此通常只用来发送固定的不变的数据,很难应用在动态数据的发送上。如果用来发送动态数据,通信数据会经常丢失,如果加入响应包,因为收发双方都需要监听数据,那必然会导致设备功耗增加,这使得采用蓝牙来进行动态数据的传输变得十分的不现实。
技术实现要素:
本发明的目的是提供一种用于蓝牙广播的动态数据传输方法及系统,实现了蓝牙技术在动态数据传输中的应用,既保障了数据传输的安全可靠性,又保障了数据传输的低功耗。
为实现上述目的,本发明提供了如下方案:
一种用于蓝牙广播的动态数据传输方法,所述方法包括:
发射端获取新数据,将第n次获取的新数据标记为第n数据;
发送端发送数据包,所述数据包包含第n-t数据到第n数据以及编号n,所述编号n为发送端发送次数的编号,t为设定值。
可选的,所述方法还包括:
接收端接收所述发送端发送的数据;
接收端判断接收到的数据中的编号是否与上次接收到的数据的编号相连续;
如果否,则接收端将接收到的数据中的编号与上次接收到的数据的编号相减,得到丢失数据的个数;
接收端提取所述接收到的数据中的第n-a+1数据到第n数据,其中,a为丢失数据的个数,n为接收到的数据中的编号;
如果是,则接收端提取所述接收到的数据中的第n数据。
可选的,所述发送端发送数据包,所述数据包包含第n-t数据到第n数据以及编号n,所述编号n为发送端发送次数的编号,t为设定值,具体包括:
发送端发送数据包,所述数据包包含第n-9数据到第n数据以及编号n,所述编号n为发送端发送次数的编号。
本发明还提供了一种用于蓝牙广播的动态数据传输系统,所述系统包括:
新数据获取单元,用于发射端获取新数据,将第n次获取的新数据标记为第n数据;
数据发送单元,用于发送端发送数据包,所述数据包包含第n-t数据到第n数据以及编号n,所述编号n为发送端发送次数的编号,t为设定值。
可选的,所述系统还包括:
接收单元,用于接收端接收所述发送端发送的数据;
接收端判断单元,用于接收端判断接收到的数据中的编号是否与上次接收到的数据的编号相连续;
丢失数据个数计算单元,用于当接收端判断接收到的数据中的编号与上次接收到的数据的编号不连续时,接收端将接收到的数据中的编号与上次接收到的数据的编号相减,得到丢失数据的个数;
第一数据提取单元,用于接收端提取所述接收到的数据中的第n-a+1数据到第n数据,其中,a为丢失数据的个数,n为接收到的数据中的编号;
第二数据提取单元,用于当接收端判断接收到的数据中的编号与上次接收到的数据的编号相连续时,接收端提取所述接收到的数据中的第n数据。
可选的,所述发送单元,具体包括:
发送子单元,用于发送端发送数据包,所述数据包包含第n-9数据到第n数据以及编号n,所述编号n为发送端发送次数的编号。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明通过对数据进行连续编号,发送端在发送时除本次数据外,同时加入前几次的数据一起广播,在接收端没有完全接收到发送端发送的所有数据时,接收端可以从接收到的数据中提取丢失的数据,在很大程度上避免了数据的丢失,同时,无需接收端回复响应包,保障了信息传输的低功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例用于蓝牙广播的动态数据传输方法发送端发送流程示意图;
图2为本发明实施例用于蓝牙广播的动态数据传输方法接收端接收流程示意图;
图3为本发明实施例用于蓝牙广播的动态数据传输系统发送端结构示意图;
图4为本发明实施例用于蓝牙广播的动态数据传输系统接收端结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种用于蓝牙广播的动态数据传输方法及系统,实现了蓝牙技术在动态数据传输中的应用,既保障了数据传输的安全可靠性,又保障了数据传输的低功耗。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明实施例用于蓝牙广播的动态数据传输方法发送端发送流程示意图,如图1所示,用于蓝牙广播的动态数据传输方法步骤如下:
步骤101:发射端获取新数据,将第n次获取的新数据标记为第n数据;
步骤102:发送端发送数据包,所述数据包包含第n-t数据到第n数据以及编号n,所述编号n为发送端发送次数的编号,t为设定值。
作为一个优选的实施例,步骤102具体为发送端发送数据包,所述数据包包含第n-9数据到第n数据以及编号n,所述编号n为发送端发送次数的编号。
图2为本发明实施例用于蓝牙广播的动态数据传输方法接收端接收流程示意图,如图2所示,具体步骤如下:
步骤201:接收端接收所述发送端发送的数据;
步骤202:接收端判断接收到的数据中的编号是否与上次接收到的数据的编号相连续;
步骤203:如果接收到的数据中的编号与上次接收到的数据的编号不连续,则接收端将接收到的数据中的编号与上次接收到的数据的编号相减,得到丢失数据的个数;
步骤204:接收端提取所述接收到的数据中的第n-a+1数据到第n数据,其中,a为丢失数据的个数,n为接收到的数据中的编号;
步骤205:如果接收到的数据中的编号与上次接收到的数据的编号相连续,则接收端提取所述接收到的数据中的第n数据。
本发明采用过饱和发送以及数据序号编码方式降低了蓝牙4.0广播数据时的数据丢失率,使其具备发送动态数据能力。
蓝牙广播模式发送数据时,在不加响应包的情况下,数据收发双方是不知道数据是否成功发出和接收的,如果用来发送动态数据,通信数据经常丢失。而如果加入响应包,因为收发双方都需要监听数据,那必然会导致设备功耗增加。为保证设备的低功耗属性,通常广播模式只用来发送固定不变的数据。无法发送动态数据。
本发明提供了一种用于蓝牙广播的动态数据传输方法及系统,在不加入响应包的情况下能够提高数据通信的稳定性,减少数据丢失,从而实现广播模式也能发送动态数据。
一个典型的蓝牙设备广播数据包,每个包都是31字节,数据包中包含UUID,设备信息,生产商信息等,这类数据被称为有效数据,除以上信息外还有约为21个字节是可以被用户自定义的,在不使用的时候视为无效数据通常以0补齐。
可以使用21字节的用户自定义区域装载数据,用于数据传输,比如环境温度。以温度为例,其数值是随环境变化而变化,数据在广播过程中,如果接收方在处理其他进程或者因为其他原因接收方没有收到数据,数据就被丢失。在实际测试中,发生丢失的概率约为20%,广播5次数据会丢失一次。
因而蓝牙广播模式,通常只广播固定不变的数据。例如一个设备编号,用来被接收方发现。
本发明提供的方法及系统的广播方(即发射端)将数据做连续编号,除本次数据外,同时加入前九次数据一起广播。接收方(即接收端)存储当前数据编号,对比本次和前次存储的数据编号,本次编号和前次编号不连续,计算两次编号差值,从数据包中获取丢失的数据。
具体的工作方式如下:
广播方:
不改变广播方式,不加入响应包,在一次广播时发送当前广播数据的编号,并在广播包中加入前九次的采集数据,构成一个小型数据包,依次为:当前数据编号,本次数据,前一次数据,前两次数据……,前九次数据。
广播包:(自定义区域)
数据0为本次数据,数据1-9为前9次数据,依次排列。
接收方:
接收方在接收数据时存储本次接收的数据编号,与前一次接收的数据编号进行减法,如果广播过程中丢失一次数据,只要接收方在第八次广播时间内,成功接收一次数据,即可通过连续编号将丢失的数据补齐。从而极大的降低数据丢失的可能性。
本发明提供的用于蓝牙广播的动态数据传输方法,通过对数据进行连续编号,发送端在发送时除本次数据外,同时加入前几次的数据一起广播,在接收端没有完全接收到发送端发送的所有数据时,接收端可以从接收到的数据中提取丢失的数据,在很大程度上避免了数据的丢失,同时,无需接收端回复响应包,保障了信息传输的低功耗。
本发明还提供了一种用于蓝牙广播的动态数据传输系统,图3为本发明实施例用于蓝牙广播的动态数据传输系统发送端结构示意图,如图3所示,用于蓝牙广播的动态数据传输系统包括:
新数据获取单元301,用于发射端获取新数据,将第n次获取的新数据标记为第n数据;
数据发送单元302,用于发送端发送数据包,所述数据包包含第n-t数据到第n数据以及编号n,所述编号n为发送端发送次数的编号,t为设定值。其中,t可以取9。
图4为本发明实施例用于蓝牙广播的动态数据传输系统接收端结构示意图,如图4所示,用于蓝牙广播的动态数据传输系统的接收端包括:
接收单元401,用于接收端接收所述发送端发送的数据;
接收端判断单元402,用于接收端判断接收到的数据中的编号是否与上次接收到的数据的编号相连续;
丢失数据个数计算单元403,用于当接收端判断接收到的数据中的编号与上次接收到的数据的编号不连续时,接收端将接收到的数据中的编号与上次接收到的数据的编号相减,得到丢失数据的个数;
第一数据提取单元404,用于接收端提取所述接收到的数据中的第n-a+1数据到第n数据,其中,a为丢失数据的个数,n为接收到的数据中的编号;
第二数据提取单元405,用于当接收端判断接收到的数据中的编号与上次接收到的数据的编号相连续时,接收端提取所述接收到的数据中的第n数据。
本发明提供的用于蓝牙广播的动态数据传输系统,通过对数据进行连续编号,发送端在发送时除本次数据外,同时加入前几次的数据一起广播,在接收端没有完全接收到发送端发送的所有数据时,接收端可以从接收到的数据中提取丢失的数据,在很大程度上避免了数据的丢失,同时,无需接收端回复响应包,保障了信息传输的低功耗。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。