基于蓝牙传输的数据同步方法及其系统技术方案

技术编号:24294306 阅读:41 留言:0更新日期:2020-05-26 21:02
本发明专利技术提供基于蓝牙传输的数据同步方法及系统,方法包括:设备A依据蓝牙传输吞吐量将待传输数据拆分成两个以上的包体;每个包体对应生成第一哈希值;设备A将每个包体对应生成的第一哈希值存入第一双向链表的各结点;设备A依序发送所述第一双向链表各结点对应的第一哈希值至设备B进行包体同步;设备B将接收到的第一哈希值依序存入本地的第二双向链表的各结点;断线重连的设备B依据所述第二双向链表表尾结点对应的第一哈希值,向设备A请求继续未完成的同步。本发明专利技术不仅实现断线重连的设备依然具备数据溯源能力,同步完整数据源;而且组网内设备数量不受限制,都具备实时数据传输的能力。

Data synchronization method and system based on Bluetooth transmission

【技术实现步骤摘要】
基于蓝牙传输的数据同步方法及其系统
本专利技术涉及蓝牙设备领域,具体涉及基于蓝牙传输的数据同步方法及其系统。
技术介绍
如今,大部分地区都覆盖了WIFI信号,使得蓝牙这块领域的作用越来越小。按照蓝牙以前的特性而言,蓝牙可以支持通话、短信以及音频、图片的传输。但是,蓝牙4.0能支持的传输吞吐量较小,在android设备上仅支持20个字节。因此,若要传输大数据量的东西,目前的蓝牙是做不到的。相信很多人都认为使用拆包的方式可以解决蓝牙传输吞吐量的缺点。但其实不然,换位思考下,当一台手机(称为设备A)将一个1MB多的文本按每个包20字节进行拆分,每拆完一个包就分发给目标设备。但当有目标设备在传输过程中突然掉线,或者被接收的设备因故离开了原先的位置,此时就会出现拆分多个包,有些包无法到达目标设备的情况。那么,当这台设备A检测到目标设备B已经回到原来的位置上了,就需要下发整个文本的大小以及每个包体的crc值给目标设备B,目标设备B检测到已接收到的包体长度不一致时,就会向设备A请求发送需要继续下载的包。但是这些都是要通过协议来传输的,单单一组本文档来自技高网...

【技术保护点】
1.基于蓝牙传输的数据同步方法,其特征在于,包括:/n设备A依据蓝牙传输吞吐量将待传输数据拆分成两个以上的包体;/n每个包体对应生成第一哈希值;/n设备A将每个包体对应生成的第一哈希值存入第一双向链表的各结点;/n设备A依序发送所述第一双向链表各结点对应的第一哈希值至设备B进行包体同步;/n设备B将接收到的第一哈希值依序存入本地的第二双向链表的各结点;/n断线重连的设备B依据所述第二双向链表表尾结点对应的第一哈希值,向设备A请求继续未完成的同步。/n

【技术特征摘要】
1.基于蓝牙传输的数据同步方法,其特征在于,包括:
设备A依据蓝牙传输吞吐量将待传输数据拆分成两个以上的包体;
每个包体对应生成第一哈希值;
设备A将每个包体对应生成的第一哈希值存入第一双向链表的各结点;
设备A依序发送所述第一双向链表各结点对应的第一哈希值至设备B进行包体同步;
设备B将接收到的第一哈希值依序存入本地的第二双向链表的各结点;
断线重连的设备B依据所述第二双向链表表尾结点对应的第一哈希值,向设备A请求继续未完成的同步。


2.如权利要求1所述的基于蓝牙传输的数据同步方法,其特征在于,还包括:
创建一与所述待传输数据对应的第一双向链表;
建立所述第一双向链表与其内包含的第一哈希值之间的关联关系。


3.如权利要求2所述的基于蓝牙传输的数据同步方法,其特征在于,所述建立所述第一双向链表与其内包含的第一哈希值之间的关联关系,具体为:
对应所述第一双向链表生成第二哈希值;
创建以所述每个包体对应生成的第一哈希值为KEY,以所述第二哈希值为value的MAP关联关系。


4.如权利要求2所述的基于蓝牙传输的数据同步方法,其特征在于,所述设备A依序发送所述一第一双向链表各结点对应的第一哈希值至设备B进行包体同步,具体为:
设备A发送所述第一双向链表表头结点对应的第一哈希值至与其蓝牙连接的设备B;
设备B依据接收到的第一哈希值向设备A请求下载对应的包体;
设备A依据所述关联关系,获取设备B发送过来的第一哈希值所关联的所述第一双向链表;
设备A依据所述第一双向链表获取设备B发送过来的第一哈希值对应的包体,并将其发送至设备B;
设备B依据所述第一哈希值向设备A请求下载其对应第一双向链表的下一哈希值所对应的包体。


5.如权利要求4所述的基于蓝牙传输的数据同步方法,其特征在于,所述设备B依据所述第一哈希值向设备A请求下载其对应第一双向链表的下一哈希值所对应的包体,具体为:
设备B依据接收到的第一哈希值向设备A请求下载下一包体;
设备A依据所述关联关系,获取接收到的第一哈希值所关联的所述第一双向链表;
设备A获取接收到的第一哈希值对应所述第一双向链表所处结点的下一结点对应的第一哈希值,并将其发送至设备B;
设备B依据接收到的第一哈希值向设备A请求下载对应的包体。


6.如权利要求2所述的基于蓝牙传输的数据同步方法,其特征在于,所述断线重连的设备B依据所述第二双向链表表尾结点对应的第一哈希值,向设备A请求继续未完成的同步,具体为:
断线重连的设备B发送所述第二双向链表表尾结点对应的第一哈希值至设备A,请求获取其对应所述第一双向链表所处结点的下一结点对应的第一哈希值。


7.如权利要求6所述的基于蓝牙传输的数据同步方法,其特征在于,所述请求获取其对应所述第一双向链表所处结点的下一结点对应的第一哈希值,之后,还包括:
设备A依据所述关联关系,获取所述表尾结点对应的第一哈希值所关联的所述第一双向链表;
设备A获取所述表尾结点对应的第一哈希值对应所述第一双向链表所处结点的下一结点对应的第一哈希值,并将其发送至设备B;
设备B依据接收到的第一哈希值向设备A请求下载对应的包体。


8.如权利要求1所述的基于蓝牙传输的数据同步方法,其特征在于,所述断线重连的设备B依据所述第二双向链表表尾结点对应的第一哈希值,向设备A请求继续未完成的同步,具体为:
断线重连的设备B发送所述第二双向链表表尾结点的上一结点对应的第一哈希值至设备A;
设备A获取接收到的第一哈希值对应其第一双向链表的结点,并将其发送至设备B;
设备B判断接收到的结点与其第二双向链表结点的上一结点是否一致,若一致,则依据所述第二双向链表表尾结点对应的第一哈希值,向设备A请求继续未完成的同步;
若不一致,则设备B向设备A获取所述第一双向链表中所述结点对应的第一哈希值,并依据所获取的第一哈希值下载对应的包体;设备B依据所述第二双向链表表尾结点对应的第一哈希值,向设备A请求继续未完成的同步。


9.如权利要求1所述的基于蓝牙传输的数据同步方法,其特征在于,还包括:
设备B依据接收到的第一哈希值在本地分别创建对应的文件,并将接收到的包体存入对应的文件中。


10.如权利要求1所述的基于蓝牙传输的数据同步方法,其特征在于,还包括:
设备A和设备B分别创建各自的GATTCLIENT线程、GATTSERVER线程和路由表;
设备A将与其GATTCLIENT线程连接的设备B的设备对象写入路由表中,所述设备对象包括GATTSERVER线程的服务地址;
设备B将与其GATTCLIENT线程连接的设备A的设备对象写入路由表中;
设备A依据其路由表中设备B的设备对象的GATTSERVER线程的服务地址,将待同步的包体写入设备B。


11.如权利要求10所述的基于蓝牙传输的数据同步方法,其特征在于,所述设备A将与其GATTCLIENT线程连接的设备B的设备对象写入路由表中;设备B将与其GATTCLIENT线程连接的设备A的设备对象写入路由表中,具体为:
设备A和设备B分别启动各自的GATTSERVER线程,并广播预设的UUID;
设备B启动其GATTCLIENT线程后,自动扫描到与自身预设的UUID一致的设备A;
设备B添加设备A的IP地址至对自身的等网络结点的列表中;
设备A启动其GATTCLIENT线程后,自动扫描到与自身预设的UUID一致的设备B;
设备A添加设备B的IP地址至自身的对等网络结点的列表中;
设备B的GATTCLIENT线程遍历自身的列表,依据列表中的蓝牙设备IP地址建立与设备A的蓝牙通讯连接;
设备B将与其成功连接的设备A的设备对象加入自身的路由表中;
设备A的GATTCLIENT线程遍历自身的列表,依据列表中的蓝牙设备IP地址建立与设备B的蓝牙通讯连接;
设备A将与其成功连接的设备B的设备对象加入自身的路由表中。


12.基于蓝牙传输的数据同步系统,其特征在于,包括蓝牙连接的至少两个设备;所述至少两个设备包括设备A和设备B;
设备A包括:
拆分模块,用于依据蓝牙传输吞吐量将待传输数据拆分成两个以上的包体;
第一生成模块,用于每个包体对应生成第一哈希值;
存储模块,用于设备A将每个包体对应生成的第一哈希值存入第一双向链表的各结...

【专利技术属性】
技术研发人员:刘德建张雅彬张明辉杜建强郭玉湖
申请(专利权)人:福建天泉教育科技有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1