一種基于ble的數(shù)據(jù)共享方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種網(wǎng)絡(luò)數(shù)據(jù)共享方法,特別涉及一種基于BLE的數(shù)據(jù)共享方法。
【背景技術(shù)】
[0002] 現(xiàn)有的BLE (藍牙低功耗)技術(shù)支持星形拓撲的一對多連接,即一個主設(shè)備可以與 多個從設(shè)備建立連接,圖1是星形拓撲網(wǎng)絡(luò)示意圖,這種結(jié)構(gòu)要求所有設(shè)備相對集中地分 布在同一個區(qū)域里,如果某個從設(shè)備與主設(shè)備之間由于距離變化等意外因素與主設(shè)備斷開 接連,那么這個從設(shè)備就脫離了整個結(jié)構(gòu);主設(shè)備C2工作在主單元模式,其余從設(shè)備都工 作在從單元模式,有效信號覆蓋范圍C1,從設(shè)備只有位于有效信號覆蓋范圍Cl才可以與主 設(shè)備進行聯(lián)系,超出主設(shè)備的有效信號覆蓋范圍Cl的從設(shè)備將與主設(shè)備失去聯(lián)系,如果若 干從設(shè)備與主設(shè)備失去聯(lián)系,那么這個結(jié)構(gòu)就失去了意義,該網(wǎng)絡(luò)無法保證所有設(shè)備數(shù)據(jù) 有效通訊。所以,在設(shè)備分布比較分散、設(shè)備位置經(jīng)常變化的應(yīng)用情景中,星形拓撲、以及多 數(shù)衍生形式的組網(wǎng)在實際應(yīng)用中都存在很大的局限性,或無法滿足某些應(yīng)用場合,特別是 對于要求保障所有設(shè)備之間數(shù)據(jù)交互及時性和完整性的應(yīng)用場合。
【發(fā)明內(nèi)容】
[0003] 針對以上缺陷,本發(fā)明目的在于如何解決現(xiàn)有星形拓撲網(wǎng)絡(luò)對于網(wǎng)絡(luò)內(nèi)所有從設(shè) 備與主設(shè)備之間距離不能超出主設(shè)備信號覆蓋范圍的問題,如何提供一種新加入的設(shè)備只 要可以與原有已連通的任意一個設(shè)備連通,就可同所有設(shè)備實現(xiàn)相互數(shù)據(jù)共享的方法。
[0004] 發(fā)明提供了一種基于BLE的數(shù)據(jù)共享方法,其特征在于所有待組網(wǎng)的藍牙設(shè)備都 各自獨立的按照以下步驟工作,藍牙設(shè)備可在主單元模式和從單元模式之間切換:
[0005] 步驟1. 1 :藍牙設(shè)備開機初始;
[0006] 步驟L 2 :初始化數(shù)據(jù)副本表;
[0007] 步驟1. 3 :檢測本機當前數(shù)據(jù)是否存在更新,如果有更新則將本藍牙設(shè)備的數(shù)據(jù) 記錄條更新到數(shù)據(jù)副本表,數(shù)據(jù)記錄條至少包括時間戳、數(shù)據(jù)和設(shè)備標識;
[0008] 步驟1. 4 :設(shè)置本機為主單元模式;
[0009] 步驟1. 5 :檢測周邊可與本藍牙設(shè)備建立連接的處于從單元模式的藍牙設(shè)備;
[0010] 步驟1. 6 :將本機上存儲的數(shù)據(jù)副本表傳輸給各個已建立連接的處于從單元模式 的藍牙設(shè)備;
[0011] 步驟1. 7:設(shè)置超時等待時間Twait,設(shè)置本機為從單元模式;
[0012] 步驟1. 8 :判定超時等待時間是否到,如超時時間到則跳轉(zhuǎn)執(zhí)行步驟1. 3 ;否則等 待被周邊可與本藍牙設(shè)備建立連接的處于主單元模式的藍牙設(shè)備發(fā)現(xiàn),如被發(fā)現(xiàn),則建立 連接;
[0013] 步驟1. 9 :接收建立連接的處于主單元模式的藍牙設(shè)備的數(shù)據(jù)副本表,并存儲為 接收數(shù)據(jù)副本表;
[0014] 步驟1. 10 :讀取步驟1. 9存儲的數(shù)據(jù)副本表與本藍牙設(shè)備中存在的數(shù)據(jù)副本表進 行合并,具體采用如下步驟進行數(shù)據(jù)合并:
[0015] 步驟A. 1:讀取接收數(shù)據(jù)副本表和本藍牙設(shè)備數(shù)據(jù)副本表;
[0016] 步驟A. 2:讀取接收數(shù)據(jù)副本表的第一條數(shù)據(jù)記錄條;
[0017] 步驟A. 3:提取數(shù)據(jù)記錄條的設(shè)備標識,檢索本藍牙設(shè)備數(shù)據(jù)副本表,判定是否存 在相同設(shè)備標識的數(shù)據(jù)記錄條,如果不存在,直接將該數(shù)據(jù)記錄條加入到本藍牙設(shè)備數(shù)據(jù) 副本表中,跳轉(zhuǎn)執(zhí)行A. 6 ;如果存在則將接收數(shù)據(jù)副本表對應(yīng)的數(shù)據(jù)記錄條覆蓋到本藍牙 設(shè)備數(shù)據(jù)副本表中該相同設(shè)備標識的數(shù)據(jù)記錄條,跳轉(zhuǎn)執(zhí)行A. 6 ;
[0018] 步驟A. 4:提取數(shù)據(jù)記錄條的設(shè)備標識,檢索本藍牙設(shè)備數(shù)據(jù)副本表,判定是否存 在相同設(shè)備標識的數(shù)據(jù)記錄條,如果不存在,直接將該數(shù)據(jù)記錄條加入到本藍牙設(shè)備數(shù)據(jù) 副本表中,跳轉(zhuǎn)執(zhí)行A. 6 ;如果存在則執(zhí)行A. 5 ;
[0019] 步驟A. 5:比較這兩個具有相同設(shè)備標識的數(shù)據(jù)記錄條的時間戳,如果接收數(shù)據(jù) 副本表的數(shù)據(jù)記錄條對應(yīng)的時間戳不比本藍牙設(shè)備的數(shù)據(jù)副本表的數(shù)據(jù)記錄條對應(yīng)的時 間戳新,則直接執(zhí)行A. 6 ;否則將接收數(shù)據(jù)副本表對應(yīng)的數(shù)據(jù)記錄條覆蓋到本藍牙設(shè)備數(shù) 據(jù)副本表中該相同設(shè)備標識的數(shù)據(jù)記錄條,執(zhí)行A. 6 ;
[0020] 步驟A. 6:判斷接收數(shù)據(jù)副本表的是否還存在數(shù)據(jù)記錄條,如果存在則讀取接收 數(shù)據(jù)副本表的下一條數(shù)據(jù)記錄條,跳轉(zhuǎn)執(zhí)行步驟A. 4 ;否則結(jié)束本次數(shù)據(jù)合并;
[0021] 步驟L 11 :跳轉(zhuǎn)執(zhí)行步驟L 8。
[0022] 所述的基于BLE的數(shù)據(jù)通訊方法,其特征在于所述的超時等待時間Twai t每次都 隨機在5S-12S之間選取。
[0023] 所述的基于BLE的數(shù)據(jù)共享方法,其特征在于所述的時間戳為本藍牙設(shè)備產(chǎn)生數(shù) 據(jù)的具體時間或記錄本藍牙設(shè)備產(chǎn)生數(shù)據(jù)的版本標識;所述的設(shè)備標識為藍牙設(shè)備ID,網(wǎng) 絡(luò)中所有待組網(wǎng)的藍牙設(shè)備的藍牙設(shè)備ID具有惟一性。
[0024] 所述的基于BLE的數(shù)據(jù)共享方法,其特征在于所述步驟1. 5中將檢測到的當前時 刻處于從單元模式的藍牙設(shè)備根據(jù)連接的信號強度,從強到弱進行排序,只取不超過10個 以內(nèi)的處于從單元模式的藍牙設(shè)備為有效連接,并動態(tài)根據(jù)信號強度的實時變化進行動態(tài) 調(diào)整。
[0025] 所述的基于BLE的數(shù)據(jù)共享方法,其特征在于所述數(shù)據(jù)副本表采用動態(tài)鏈表方式 存儲,每個數(shù)據(jù)記錄條為一個數(shù)據(jù)節(jié)點,本藍牙設(shè)備對應(yīng)的數(shù)據(jù)記錄條位于表頭。
[0026] 本發(fā)明可通過接力的形式將數(shù)據(jù)轉(zhuǎn)發(fā)到無法直接聯(lián)系的設(shè)備,突破了原有藍牙星 形拓撲結(jié)構(gòu)的網(wǎng)絡(luò)物理信號覆蓋范圍的地域限制,也突破了其組網(wǎng)終端數(shù)量的限制,極大 的拓寬了其應(yīng)用范圍。
【附圖說明】
[0027] 圖1是星形拓撲網(wǎng)絡(luò)示意圖;
[0028] 圖2是本發(fā)明拓撲網(wǎng)絡(luò)示意圖;
[0029] 圖3是BLE的數(shù)據(jù)共享Tl時刻連接圖;
[0030] 圖4是BLE的數(shù)據(jù)共享T2時刻連接圖;
[0031 ] 圖5是BLE的數(shù)據(jù)共享T3時刻連接圖;
[0032] 圖6是數(shù)據(jù)副本合并流程圖。
【具體實施方式】
[0033] 下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。
[0034] 圖2是本發(fā)明拓撲網(wǎng)絡(luò)示意圖;只要滿足新加入的設(shè)備與原有設(shè)備只要可以保證 至少一個設(shè)備連通,就可實現(xiàn)該設(shè)備與所有設(shè)備進行數(shù)據(jù)共享。也就是說其網(wǎng)絡(luò)有效覆蓋 范圍不是由哪一個設(shè)備來決定的,而是所有可設(shè)備的有效覆蓋范圍的和。
[0035] 圖3是BLE的數(shù)據(jù)共享Tl時刻連接圖;圖4是BLE的數(shù)據(jù)共享T2時刻連接圖;圖 5是BLE的數(shù)據(jù)共享T3時刻連接圖;
[0036] 假設(shè)一共有待組網(wǎng)藍牙設(shè)備從設(shè)備1到設(shè)備9,括號標注"從"的表示當前工作在 從單元模式,括號標注"主"的表示當前工作在主單元模式。
[0037] Tl 時刻:
[0038] Tl時刻設(shè)備1、設(shè)備9和設(shè)備5工作在主單元工作模式,區(qū)域11內(nèi)的范圍為設(shè)備 1的有效覆蓋范圍;區(qū)域51內(nèi)的范圍為設(shè)備5的有效覆蓋范圍,區(qū)域91內(nèi)的范圍為設(shè)備9 的有效覆蓋范圍。
[0039] 設(shè)備1工作在主單元工作模式,檢測周邊可與設(shè)備1建立連接的處于從單元模式 的藍牙設(shè)備;在有效范圍內(nèi)一共檢測到設(shè)備2、設(shè)備3、設(shè)備4、設(shè)備6和設(shè)備9,其中設(shè)備9 工作在主單元模式,被排除在外;將設(shè)備1上存儲的數(shù)據(jù)副本表傳輸給各個已建立連接的 處于從單元模式的藍牙設(shè)備,這里為設(shè)備2、設(shè)備3、設(shè)備4和設(shè)備6。
[0040] 設(shè)備5工作在主單元工作模式,檢測周邊可與設(shè)備5建立連接的處于從單元模式 的藍牙設(shè)備;在有效范圍內(nèi)一共檢測到都設(shè)備2、設(shè)備4、設(shè)備6和設(shè)備7 ;將設(shè)備5上存儲的 數(shù)據(jù)副本表傳輸給各個已建立連接的處于從單元模式的藍牙設(shè)備,這里為設(shè)備4、設(shè)備6、 設(shè)備7和設(shè)備8。
[0041] 設(shè)備9工作在主單元工作模式,檢測周邊可與設(shè)備9建立連接的處于從單元模式 的藍牙設(shè)備;在有效范圍內(nèi)一共檢測到設(shè)備1、設(shè)備2和設(shè)備6,其中設(shè)備1工作在主單元模 式,被排除在外;將設(shè)備9上存儲的數(shù)據(jù)副本表傳輸給各個已建立連接的處于從單元模式 的藍牙設(shè)備,這里為設(shè)備2和設(shè)備6。
[0042] 當前時刻工作在從單兀工作模式有設(shè)備2、設(shè)備3、設(shè)備4、設(shè)備6、設(shè)備7和設(shè)備9, 這些設(shè)備就分別接收與其建立連接的設(shè)備的數(shù)據(jù)副本表,并與本設(shè)備存儲的設(shè)數(shù)據(jù)副本表 進行數(shù)據(jù)合并。
[0043] T2 時刻:
[0044] T2時刻設(shè)備2、設(shè)備4和設(shè)備6工作在主單元工作模式,區(qū)域22內(nèi)的范圍為設(shè)備 2的有效覆蓋范圍;區(qū)域42內(nèi)的范圍為設(shè)備4的有效覆蓋范圍,區(qū)域62內(nèi)的范圍為設(shè)備6 的有效覆蓋范圍。
[0045] 設(shè)備2工作在主單元工作模式,檢測周邊可與設(shè)備2建立連接的處于從單元模式 的藍牙設(shè)備;在有效范圍內(nèi)一共檢測到設(shè)備1、設(shè)備3和設(shè)備9 ;將設(shè)備2上存儲的數(shù)據(jù)副本 表傳輸給各個已建立連接的處于從單元模式的藍牙設(shè)備,這里為設(shè)備1、設(shè)備3和設(shè)備9。
[0046] 設(shè)備4工作在主單元工作模式,檢測周邊可與設(shè)備4建立連接的處于從單元模式 的藍牙設(shè)備;在有效范圍內(nèi)一共檢測到都設(shè)備1、設(shè)備3和設(shè)備5 ;將設(shè)備4上存儲的數(shù)據(jù)副 本表傳輸給各個已建立連接的處于從單元模式的藍牙設(shè)備,這里為設(shè)備1、設(shè)備3和設(shè)備5。
[0047] 設(shè)備6工作在主單元工作模式,檢測周邊可與設(shè)備6建立連接的處于從單元模式 的藍牙設(shè)備;在有效范圍內(nèi)一共檢測到設(shè)備1、設(shè)備5、設(shè)備7和設(shè)備9 ;將設(shè)備6上存儲的 數(shù)據(jù)副本表傳輸給各個已建立連接的處于從單元模式的藍牙設(shè)備,這里為設(shè)備1、設(shè)備5、 設(shè)備7和設(shè)備9。
[0048] 其中單前時刻設(shè)備8也處于從單元工作,但其與任意一個當前處于主設(shè)備模式的 設(shè)備都沒有建立聯(lián)系。
[0049] 當前時刻工作在從單兀工作模式有設(shè)備1、設(shè)備5、設(shè)備7和設(shè)備9,這些設(shè)備就 分別接收與其建立連接的設(shè)備的數(shù)據(jù)副本表,并與本設(shè)備存儲的設(shè)數(shù)據(jù)副本表進行數(shù)據(jù)合 并。
[0050] T3 時刻:
[0051] T3時刻設(shè)備3、設(shè)備5和設(shè)備7工作在主單元工作模式,區(qū)域33內(nèi)的范圍為設(shè)備 3的有效覆蓋范圍;區(qū)域53內(nèi)的范圍為設(shè)備5的有效覆蓋范圍,區(qū)域73內(nèi)的范圍為設(shè)備7 的有效覆蓋范圍。
[0052] 設(shè)備3工作在主單元工作模式,檢測周邊可與設(shè)備3建立連接的處于從單元模式 的藍牙設(shè)備;在有效范圍內(nèi)一共檢測到設(shè)備1、設(shè)備2和設(shè)備4 ;將設(shè)備3上存儲的數(shù)據(jù)副本 表傳輸給各個已建立連接的處于從單元模式的藍牙設(shè)備,這里為設(shè)備1、設(shè)備2和設(shè)備4。
[0053] 設(shè)備5工作在主單元工作模