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